15

所花时间:大半天
博客量:2
代码量:几百
所学知识:计算机网络:数据链路层,概率论 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 policyNames;
private ArrayAdapter adapter;

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

}

posted @ 2025-03-21 21:10  龚恒。  阅读(10)  评论(0)    收藏  举报