山石久渡
2016-05-12 14:11
采纳率: 100%
浏览 2.7k
已采纳

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 主键了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 山石久渡 2017-04-17 08:25
    已采纳

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

    点赞 评论
  • leobert_lan 2016-05-12 14:18

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

    点赞 评论
  • danielinbiti 2016-05-12 14:44

    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
    
    点赞 评论
  • 恋恋西风 2016-05-13 01:20

    可以用 sql 语句直接实现;

    点赞 评论

相关推荐 更多相似问题