Android 如何模糊查询数据库其中一列,并将对应结果显示在list中

已经建好一个数据库并且在data/data/packagename/下。
现在在学习绑定了按钮监听并且查询,但是模拟到按查询button时就程序自动退出
public void onClick(View v) {

test = SQLiteDatabase.openOrCreateDatabase(
"data/data/com.example.ediantong/test.db", null);
String key = et.getText().toString();

String sql = "Select type from table22 where price="+"%"+key+"%";
Cursor c = test.rawQuery(sql,null);

c.moveToFirst();

            //SimpleCursorAdapter适配器  
            SimpleCursorAdapter test = new SimpleCursorAdapter(test.this,  
                    android.R.layout.simple_list_item_2, 
                    c, 
                    new String[] {"un", "an" },
                    new int[] { android.R.id.text1, android.R.id.text2 });  
            lv.setAdapter(test);  
        }  

我是照着网络上代码改的,数据库有android_matadata表,table22 也有_id 主键了。

来来来,我来回答。
教你用sql select type from table where * like * + " " + ""

只要是模糊查询基本都是like,不是=,虽然数据库弄得不多,这话我还是敢说的。另外给你个建议,可以用数据库工具单独测试SQL,结合在一起不太好测,出了问题难定位。

1、检查权限

 <!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2、看logcat提示什么错误
3、模糊查询

 String sql = "Select type from table22 where price like "+"'%"+key+"%'";  //字符串的两边加上',等号改like

可以用 sql 语句直接实现;