已经建好一个数据库并且在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 语句直接实现;