这是布局
以下是代码
new Thread(new Runnable() {
@Override
public void run() {
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection cn= DriverManager.getConnection("jdbc:mysql://cdb-bu2jncq1.gz.tencentcdb.com:10071/cangku1","root","xing1997");
String sql="select * from kehu";
Statement st=(Statement)cn.createStatement();
ResultSet rs=st.executeQuery(sql);
while (rs.next()){
Map<String, Object> map = new HashMap<String, Object>();
map.put("kh_name", rs.getString("kh_name"));
map.put("name", rs.getString("name"));
map.put("kh_tel", rs.getString("kh_tel"));
map.put("kh_add", rs.getString("kh_add"));
listitem.add(map);
}
cn.close();
st.close();
rs.close();
}catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
Looper.prepare();
Toast.makeText(kh_lb.this, "连接数据库失败,网络异常!", Toast.LENGTH_LONG).show();
Looper.loop();
}catch (Exception e){
}
}
}).start();
//更新界面
//创建适配器
// 第一个参数是上下文对象
// 第二个是listitem
// 第三个是指定每个列表项的布局文件
// 第四个是指定Map对象中定义的两个键(这里通过字符串数组来指定)
// 第五个是用于指定在布局文件中定义的id(也是用数组来指定)
SimpleAdapter adapter = new SimpleAdapter(kh_lb.this
, listitem
, R.layout.kh_lb_item
, new String[]{"kh_name","name","kh_tel","kh_add"}
, new int[]{R.id.kh_name, R.id.name,R.id.kh_tel,R.id.kh_add});
final ListView listView = findViewById(R.id.kh_list);
listView.setAdapter(adapter);
EditText sousuo=findViewById(R.id.sousuo);
sousuo.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {//EditorInfo.IME_ACTION_SEARCH、EditorInfo.IME_ACTION_SEND等分别对应EditText的imeOptions属性
//TODO回车键按下时要执行的操作
ListView listView = findViewById(R.id.kh_list);
listitem.clear();
final EditText sousuo=findViewById(R.id.sousuo);
new Thread(new Runnable() {
@Override
public void run() {
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection cn= DriverManager.getConnection("jdbc:mysql://XXXXXX/cangku1","root","XXXXX");
String sql="select * from kehu where kh_name='"+sousuo.getText().toString()+"' or name='"+sousuo.getText().toString()+"'";
Statement st=(Statement)cn.createStatement();
ResultSet rs=st.executeQuery(sql);
int i=0;
while (rs.next()){
Map<String, Object> map = new HashMap<String, Object>();
map.put("kh_name", rs.getString("kh_name"));
map.put("name", rs.getString("name"));
map.put("kh_tel", rs.getString("kh_tel"));
map.put("kh_add", rs.getString("kh_add"));
i=1;
listitem.add(map);
}
Looper.prepare();
Toast.makeText(kh_lb.this, "正在搜索,请稍后!", Toast.LENGTH_LONG).show();
if (i == 0){
Toast.makeText(kh_lb.this, "当前不存在相关信息,请重新搜索!", Toast.LENGTH_LONG).show();
}
cn.close();
st.close();
rs.close();
Looper.loop();
}catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
Looper.prepare();
Toast.makeText(kh_lb.this, "连接数据库失败,网络异常!", Toast.LENGTH_LONG).show();
Looper.loop();
}catch (Exception e){
}
}
}).start();
//更新界面
//创建适配器
// 第一个参数是上下文对象
// 第二个是listitem
// 第三个是指定每个列表项的布局文件
// 第四个是指定Map对象中定义的两个键(这里通过字符串数组来指定)
// 第五个是用于指定在布局文件中定义的id(也是用数组来指定)
SimpleAdapter adapter = new SimpleAdapter(kh_lb.this
, listitem
, R.layout.kh_lb_item
, new String[]{"kh_name","name","kh_tel","kh_add"}
, new int[]{R.id.kh_name, R.id.name,R.id.kh_tel,R.id.kh_add});
listView.setAdapter(adapter);
}
return false;
}
});
求大佬帮忙!!!