首页 > 其他分享 >科技政策查询系统--MainActivity

科技政策查询系统--MainActivity

时间:2024-05-28 22:22:12浏览次数:14  
标签:-- void private 查询 MainActivity intent import android View

 

所花时间(包括上课):  5  h左右
代码量(行):  1000     左右
搏客量(篇): 1
了解到的知识点:  springboot+android的简单开发
备注(其他):  
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);
            }
        });
    }
}

 

标签:--,void,private,查询,MainActivity,intent,import,android,View
From: https://www.cnblogs.com/muzhaodi/p/18219071

相关文章

  • 1
    各角色功能1.管理员:管理用户(增删)管理部门(增删)2.拟稿人:删除未通过的公文发配公文给部门审批3.部门:审批公文下发公文4.领导:审批公文一、注册(一)用户注册1.先进入注册界面输入用户注册信息2.再登录管理员角色,审核用户信息(二)部门注册1.先登录管理员角色,......
  • Design OOP use C
    DesignOOPuseC使用c语言实现面向对象特性以底层思维来理解面向对象。我所理解的oop:为不同的数据元提供稳定的处理逻辑框架,同时提供复写的可能,支持不同数据元个性化定制有限的逻辑;多态特性:基类实现一组通用处理逻辑接口,子类通过改变特定接口的执行逻辑实现将子类与个性化操......
  • 支付逻辑漏洞
    支付逻辑漏洞1.0支付过程基础知识常见支付流程:选择商品和数量,选择支付及配送方式,生成订单编号,订单支付选择,完成支付。修改思路:在这个流程中,我们可以更改数据的地方有很多,我们可以尝试去更改商品编号id,购买价格,购买水量,订单号,支付状态等如果某个流程的判定不严格,就会产生支付漏......
  • 架构
    1.sso+oauth2我们搭建起来了一套新的sso单点登录系统,和老的系统来比,我们新的鉴权架构整合了权限中台,因为我们原来各个系统之间业务权限是分离的,就导致分配各系统之间因为权限不统一问题,在业务方面造成了影响么,并且实现了新框架的sso+oauth的权限整合,并且整合的权限中台。每次登......
  • 「清新题精讲」CheckerExpansion
    SRM550-500CheckerExpansionDescription起初\((0,0)\)点Alice填为了红色,接下来\(t\)次操作Alice和Bob轮流操作,如果\((x-1,y-1)\)位置被另一方填了且\((x-2,y)\)为空;或\((x-1,y-1)\)为空且\((x-2,y)\)被另一方填了,则当前方将填\((x,y)\)。给定\(x,y,h,w......
  • 机器学习之逻辑回归
    1.逻辑回归介绍逻辑回归是一种常用的统计学习方法,通常用于处理分类问题。尽管名字中包含"回归"一词,但逻辑回归实际上用于解决分类问题,而不是回归问题。逻辑回归的基本思想是通过一个称为"逻辑函数"或"sigmoid函数"的特定函数来建立分类模型。2.sigomid函数a.公式z的取值为负无......
  • transformer的Pytorch简易实现
    Transformer(Pytorch)fromscratchcodebyTaeHwanJung(JeffJung)@graykode,DerekMiller@dmmiller612,modifiedbyshwei;modifiedagainbyLittleHenryReference:https://blog.csdn.net/BXD1314/article/details/126187598?spm=1001.2014.3001.5506https://bl......
  • FreeSWITCH使用soundtouch进行变声
    操作系统:CentOS7.6_x64FreeSWITCH版本:1.10.9  FreeSWITCH里面有个mod_soundtouch模块,支持通话实时变声,今天整理下CentOS7环境下如何使用soundtouch进行实时变声,并提供相关效果演示及资源下载。我将从以下几个方面进行展开:soundtouch介绍基于文件的变声mod_soundtouc......
  • AGC061C 做题记录
    很具有启发性的题目。link我一开始没什么思路,选择了手动模拟来观察。这道题打破了我的按部就班的步骤:考虑直接创造一个条件,这样就能做到不重复。如果想到了这一点,我们其实就很容易想到这样一个条件:对于一个方案,\(\foralli\in[1,n],\(a_i,b_i)\)中没有其他人登记,那么\(i\)......
  • TCP和UDP协议的特点和用途
    TCP(TransmissionControlProtocol):特点:面向连接、可靠传输、按序交付、流量控制、拥塞控制。用途:适用于需要高可靠性的数据传输,如网页浏览、电子邮件、文件传输等。优势:数据包顺序和完整性有保障,适合需要准确无误传输数据的场景。举例:在线购物网站的交易数据传输,确保每笔交易......