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);
}
});
}
}