政策一点通前端
package com.example.profit1;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ExpandableListView;
import androidx.appcompat.app.AppCompatActivity;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.widget.ExpandableListView;
import android.view.LayoutInflater;
import android.content.Context;
import android.widget.BaseExpandableListAdapter;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private EditText keywordEditText;
private Button searchButton;
private ExpandableListView expandableListView;
private List<String> groupTitles;
private HashMap<String, List<Spanned>> childData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
keywordEditText = findViewById(R.id.keywordEditText);
searchButton = findViewById(R.id.searchButton);
expandableListView = findViewById(R.id.expandableListView);
searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String keyword = keywordEditText.getText().toString();
Log.d(TAG, "Search button clicked with keyword: " + keyword);
new SearchPolicyTask().execute(keyword);
}
});
}
private class SearchPolicyTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String keyword = params[0];
String result = "";
try {
URL url = new URL("http://192.168.141.106:8080/profit_war_exploded/searchPolicy?keyword=" + keyword);
Log.d(TAG, "URL: " + url.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
int responseCode = conn.getResponseCode();
Log.d(TAG, "Response Code: " + responseCode);
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
result = response.toString();
Log.d(TAG, "Response Data: " + result); // 打印响应数据
} else {
Log.e(TAG, "Failed to get response. Response Code: " + responseCode);
}
} catch (Exception e) {
Log.e(TAG, "Exception occurred: ", e);
}
return result;
}
@Override
protected void onPostExecute(String result) {
try {
if (result == null || result.isEmpty()) {
Log.d(TAG, "No data found in response.");
return;
}
JSONArray jsonArray = new JSONArray(result);
if (jsonArray.length() == 0) {
Log.d(TAG, "JSON array is empty.");
return;
}
groupTitles = new ArrayList<>();
childData = new HashMap<>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
String text = jsonObject.getString("text");
Spanned spannedText = Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT);
groupTitles.add(name);
List<Spanned> texts = new ArrayList<>();
texts.add(spannedText);
childData.put(name, texts);
}
ExpandableListAdapter listAdapter = new ExpandableListAdapter(MainActivity.this, groupTitles, childData);
expandableListView.setAdapter(listAdapter);
} catch (Exception e) {
Log.e(TAG, "Error parsing JSON data: ", e);
}
}
}
public class ExpandableListAdapter extends BaseExpandableListAdapter {
private Context context;
private List<String> groupTitles;
private HashMap<String, List<Spanned>> childData;
public ExpandableListAdapter(Context context, List<String> groupTitles, HashMap<String, List<Spanned>> childData) {
this.context = context;
this.groupTitles = groupTitles;
this.childData = childData;
}
@Override
public int getGroupCount() {
return groupTitles.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return childData.get(groupTitles.get(groupPosition)).size();
}
@Override
public Object getGroup(int groupPosition) {
return groupTitles.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return childData.get(groupTitles.get(groupPosition)).get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
String groupName = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.group_item, null);
}
TextView groupTitleTextView = convertView.findViewById(R.id.groupTitle);
groupTitleTextView.setText(groupName);
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
Spanned childText = (Spanned) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.child_item, null);
}
TextView childTextView = convertView.findViewById(R.id.childText);
childTextView.setText(childText);
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
}

浙公网安备 33010602011771号