首页 > 其他分享 >02个人课堂练习

02个人课堂练习

时间:2024-06-19 23:55:41浏览次数:31  
标签:02 课堂练习 个人 void private intent import android View

package com.example.policyquery;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.example.policyquery.api.ApiService;
import com.example.policyquery.api.RetrofitClient;
import com.example.policyquery.DataModel.Policy;

import java.util.ArrayList;
import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class MainActivity extends AppCompatActivity {

private LinearLayout llOverview;
private LinearLayout llCategory;
private ListView policyListView;
private AutoCompleteTextView searchInput;
private TextView resultTextView;
private ApiService apiService;
private ArrayAdapter<String> policyAdapter;
private List<Policy> policyList;
private List<String> policyNames;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// 初始化视图
llOverview = findViewById(R.id.LL1);
llCategory = findViewById(R.id.LL2);
policyListView = findViewById(R.id.policyListView);
searchInput = findViewById(R.id.searchInput);
resultTextView = findViewById(R.id.resultTextView);

Button overviewButton = findViewById(R.id.overviewButton);
Button categoryButton = findViewById(R.id.categoryButton);
Button searchButton = findViewById(R.id.searchButton);

// 初始化ApiService
apiService = RetrofitClient.getRetrofitInstance().create(ApiService.class);

// 初始化政策列表和适配器
policyList = new ArrayList<>();
policyNames = new ArrayList<>();
policyAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, policyNames);
policyListView.setAdapter(policyAdapter);

// 在程序启动时调用getAllPolicies
getAllPolicies();

// 设置按钮点击事件监听器
overviewButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示政策概览界面,隐藏政策分类界面
llOverview.setVisibility(View.VISIBLE);
llCategory.setVisibility(View.GONE);
}
});

categoryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示政策分类界面,隐藏政策概览界面
llOverview.setVisibility(View.GONE);
llCategory.setVisibility(View.VISIBLE);
// 可以在这里添加获取政策分类的方法
}
});

searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 执行查询操作
performSearch();
}
});

// 设置政策名称点击事件监听器
policyListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 跳转到详情页
Intent intent = new Intent(MainActivity.this, PolicyDetailActivity.class);
Policy selectedPolicy = policyList.get(position);
intent.putExtra("policyId", selectedPolicy.getId());
intent.putExtra("policyName", selectedPolicy.getName());
intent.putExtra("policyType", selectedPolicy.getType());
intent.putExtra("policyCategory", selectedPolicy.getCategory());
intent.putExtra("policyRange", selectedPolicy.getRange());
intent.putExtra("policyDocument", selectedPolicy.getDocument());
intent.putExtra("policyForm", selectedPolicy.getForm());
intent.putExtra("policyOrgan", selectedPolicy.getOrgan());
intent.putExtra("policyText", selectedPolicy.getText());
startActivity(intent);
}
});
}

private void getAllPolicies() {
apiService.getAllPolicies().enqueue(new Callback<List<Policy>>() {
@Override
public void onResponse(Call<List<Policy>> call, Response<List<Policy>> response) {
if (response.isSuccessful() && response.body() != null) {
List<Policy> policies = response.body();
// 将政策添加到列表中并更新适配器
policyList.clear();
policyNames.clear();
policyList.addAll(policies);
for (Policy policy : policies) {
policyNames.add(policy.getName());
}
policyAdapter.notifyDataSetChanged();
} else {
Log.e("MainActivity", "获取政策数据失败");
}
}

@Override
public void onFailure(Call<List<Policy>> call, Throwable t) {
Log.e("MainActivity", "网络请求失败", t);
}
});
}

private void performSearch() {
String query = searchInput.getText().toString();

apiService.queryPolicy(query).enqueue(new Callback<List<Policy>>() {
@Override
public void onResponse(Call<List<Policy>> call, Response<List<Policy>> response) {
if (response.isSuccessful() && response.body() != null) {
List<Policy> policies = response.body();
// 显示查询结果并更新政策列表
policyList.clear();
policyNames.clear();
policyList.addAll(policies);
for (Policy policy : policies) {
policyNames.add(policy.getName());
}
policyAdapter.notifyDataSetChanged();
} else {
Log.e("MainActivity", "查询政策数据失败");
}
}

@Override
public void onFailure(Call<List<Policy>> call, Throwable t) {
Log.e("MainActivity", "网络请求失败", t);
}
});
}
}

标签:02,课堂练习,个人,void,private,intent,import,android,View
From: https://www.cnblogs.com/Mini-Q/p/18257806

相关文章

  • Visual Studio 2022 Typescript 代码错误提示故障问题
    近日编码过程中发现,项目中所有.ts、.tsx文件中的代码修改过后仍有错误提示,甚至注释掉代码后错误提示仍在原位。症状如下:VS内置Typescript语法检查和eslint支持,两个语法检查服务可同时运行,并同时发送错误提示和改进建议。eslint正常运行,无故障。选项中禁用后重启VS2022,eslint不......
  • Automa实现的Gmail个人邮箱批量发邮件-带定时功能-实战原创
    文章目录前言一、Gmail个人邮箱批量发邮件是什么?二、操作演示1.工作流全貌2.数据读取3.创建空文件4.写入数据5.切换标签页6.定时功能总结高效办公新技能:使用Automa和Gmail实现定时邮件发送,提升效率!前言Gmail个人邮箱批量发邮件-自定义内容,这个插件之前做的是安......
  • 李宏毅2023机器学习作业HW06解析和代码分享
    ML2023Spring-HW6相关信息:课程主页课程视频SamplecodeHW06视频HW06PDF个人完整代码分享:GitHub|Gitee|GitCodeP.S.HW06是在Judgeboi上提交的,出于学习目的这里会自定义两个度量的函数,不用深究,遵循Suggestion就可以达成学习的目的。每年的数据集si......
  • 【教学类-64-04】20240619彩色鱼骨图(一)6.5*1CM 6根棒子720种
    背景需求:幼儿益智早教玩具❗️鱼骨拼图-小红书在家也能自制的木棒鱼骨拼图,你也收藏起来试一试吧。#母婴育儿#新手爸妈#玩具#宝宝玩具怎么选#早教#早教玩具#幼儿早教#益智早教#玩具#宝宝早教#益智拼图#宝宝拼图#玩不腻的益智玩具#儿童益智桌游#早教日常#益智......
  • 个人课堂练习01
    个人课堂练习013月15日今天进行了web端的政策查询的实现,借鉴了一些学长的一些代码,//policy*{    padding: 0;    margin: 0;    font-family: 'OpenSansLight';    letter-spacing:.05em;    margin: 0 auto;    text-align:center;......
  • 个人课堂练习02
    个人课堂练习025月15日今天是将web端的政策查询使得在手机端也能实现,同样借鉴了学长的packagecom.example.policyquery;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.AdapterView;impor......
  • CSP历年复赛题-P8815 [CSP-J 2022] 逻辑表达式
    原题链接:https://www.luogu.com.cn/problem/P8815题意解读:计算逻辑表达式的值以及&,|短路操作的次数。解题思路:又是一道经典的中缀表达式的变形问题,如果对中缀表示式如何求值不理解,移步https://www.acwing.com/problem/content/3305/进行复习如果对表示式如何构建树形结构以及......
  • 个人课堂练习01
    今天建民让我们在课堂上实现安卓端的连接数据库,然后实现增删改,我在课堂上三个小时只实现了mysql本地数据库的连接,然后在回到宿舍后,弄到了晚上22点,我实现了增删改以下是我的代码:pckagecom.example.newone;importandroidx.appcompat.app.AppCompatActivity;importandroi......
  • SEETF-2023 express-javascript-security ejs相关漏洞
    今天做个ejs相关题目。进入页面只发现一个输入框,题目标签是ejs相关,去github看看源码,发现ejs版本为3.1.9,可以确定地是rce漏洞。接下来说说这个rce漏洞。3.1.9版本的rce漏洞主要是因为使用了这个模板来构建网页逻辑导致的。点击查看代码//index.jsconstexpress=require('e......
  • 持续总结中!2024年面试必问 20 道设计模式面试题(六)
    上一篇地址:持续总结中!2024年面试必问20道设计模式面试题(五)-CSDN博客十一、迭代器模式(IteratorPattern)解决了什么问题?迭代器模式(IteratorPattern)解决了如何顺序访问一个聚合对象中的各个元素,而不暴露其内部的表示的问题。这种模式定义了一种方法来遍历集合,同时保持了对象......