23
所学时间:200分钟
博客量“1
代码量:120
所学知识:计算机网络:网络层,java作业
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private EditText keywordEditText;
private ListView policyListView;
private List
private ArrayAdapter
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
keywordEditText = findViewById(R.id.keywordEditText);
policyListView = findViewById(R.id.policyListView);
policyNames = new ArrayList<>();
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, policyNames);
policyListView.setAdapter(adapter);
policyListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String policyName = policyNames.get(position);
new OpenPolicyTextTask().execute(policyName);
}
});
}
public void searchPolicies(View view) {
String keyword = keywordEditText.getText().toString();
new SearchPoliciesTask().execute(keyword);
}
private class SearchPoliciesTask extends AsyncTask<String, Void, List<String>> {
@Override
protected List<String> doInBackground(String... keywords) {
List<String> result = new ArrayList<>();
String keyword = keywords[0];
try (Connection connection = DBConnection.getConnection();
Statement statement = connection.createStatement()) {
String query = "SELECT policy_name FROM policy WHERE keywords LIKE '%" + keyword + "%'";
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
result.add(resultSet.getString("policy_name"));
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(List<String> result) {
policyNames.clear();
policyNames.addAll(result);
adapter.notifyDataSetChanged();
}
}
private class OpenPolicyTextTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... policyNames) {
String policyName = policyNames[0];
String policyText = "";
try (Connection connection = DBConnection.getConnection();
Statement statement = connection.createStatement()) {
String query = "SELECT document_text FROM policy WHERE policy_name = '" + policyName + "'";
ResultSet resultSet = statement.executeQuery(query);
if (resultSet.next()) {
policyText = resultSet.getString("document_text");
}
} catch (Exception e) {
e.printStackTrace();
}
return policyText;
}
@Override
protected void onPostExecute(String policyText) {
if (!policyText.isEmpty()) {
Toast.makeText(MainActivity.this, policyText, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "未找到政策全文", Toast.LENGTH_SHORT).show();
}
}
}
}
浙公网安备 33010602011771号