其实不论是什么操作,它的方法是最重要的,实现查询功能就要创建数据库,实现精确查询就要限定它的占位符,实现模糊查询加一个字符串。当我们明白之后它原来是这样简单,是的,重点是思维。
下拉列表的模糊查询,我们用开关语句实现?
//下拉列表选择框的事件监听器
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
String result = parent.getItemAtPosition(position).toString();//获取选项卡的值
Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show();//显示被选中的值
switch (result){
case "按ID查询":
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "ID like ?", new String[]{"%"+key+"%"}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList
//查询其中的某一个,
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor cursor = dbOpenHelper.getReadableDatabase().query("dict", null, "word=?", new String[]{key}, null, null, null);
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "detail=?", new String[]{key}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList> resultList = new ArrayList>();// 创建一个结果集 两个String类型
while (cursor.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map map = new HashMap<>(); //新开辟一个map的集合空间
// map.put("id",cursor.getString(0));
map.put("word", cursor.getString(1));//在第一行输出姓名
map.put("interpret", cursor.getString(2));//在第二行输出电话
resultList.add(map);//在XML文件resultList 显示
//定义一个simpleAdapter,供列表项使用
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, resultList, R.layout.result_main,
new String[]{"word", "interpret"}, new int[]{
R.id.result_word, R.id.result_interpret});
listView.setAdapter(simpleAdapter);
}
//创建ArrayList对象,用于保存查询输出的结果
ArrayList> r = new ArrayList>();// 创建一个结果集 两个String类型
while (c.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map map = new HashMap<>(); //新开辟一个map的集合空间
// map.put("id",cursor.getString(0));
map.put("word", c.getString(1));//在第一行输出姓名
map.put("interpret", c.getString(2));//在第二行输出电话
r.add(map);//在XML文件resultList 显示
}
if (r == null || r.size() == 0) {
Toast.makeText(MainActivity.this, "查无此人", Toast.LENGTH_LONG).show();
} else {
//定义一个simpleAdapter,供列表项使用
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, r, R.layout.result_main,
new String[]{"word", "interpret"}, new int[]{
R.id.result_word, R.id.result_interpret});
listView.setAdapter(simpleAdapter);
}
}
});
//查询所有的
btnSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor cursor = dbOpenHelper.getReadableDatabase().query("dict", null, null, null, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList> resultList = new ArrayList>();// 创建一个结果集 两个String类型
while (cursor.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map map = new HashMap<>(); //新开辟一个map的集合空间
map.put("word", cursor.getString(1));//在第一行输出姓名
map.put("interpret", cursor.getString(2));//在第二行输出电话
resultList.add(map);//在XML文件resultList 显示
}
if (resultList == null || resultList.size() == 0) {
Toast.makeText(MainActivity.this, "没有相关记录", Toast.LENGTH_LONG).show();
} else {
//定义一个simpleAdapter,供列表项使用
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, resultList, R.layout.result_main,
new String[]{"word", "interpret"}, new int[]{
R.id.result_word, R.id.result_interpret});
listView.setAdapter(simpleAdapter);
}
}
});