2013-07-29 115 views
2

如何找到sqlite database中的确切数据并在listactivity中检索它?我尝试这样,但我没有得到价值。从sqlite数据库中搜索一个值,并在列表视图中检索

search = (EditText) findViewById(R.id.alertsearch); 

search.addTextChangedListener(new TextWatcher(){ 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      list2.clear(); 
      db = openOrCreateDatabase(Contactsnew.DB_NAME, MODE_PRIVATE, null); 
      Cursor cTitle=db.rawQuery(" SELECT * FROM "+ Contactsnew.TABLE02 + " WHERE " 
        + Contactsnew.userid + " = " + GetSet.getUserId() + " AND " + Contactsnew.TITLE + 
        " LIKE ? " ,new String []{search.getText()+"%"}); 
      custAdapter.changeCursor(cTitle); 

      while(cTitle.moveToNext()){ 
       list2.add(cTitle.getString(2)); 
       } 
      cTitle.close(); 
     } 
+0

试试这种方式:http://stackoverflow.com/a/1243378/1168654 –

+0

什么是Contactsnew? – 2014-06-30 09:08:25

回答

4

在你的sqliteconnecter中创建一个方法并在你的相应类中调用该方法。现在typr下面的代码在乌拉圭回合sqlite的类,

Cursor cusror; 

cursor=db.rawQuery("SELECT * FROM "+ Contactsnew.TABLE02 + " WHERE " 
       + Contactsnew.userid + " = " + Contactsnew.userId + " AND " + Contactsnew.TITLE + 
       " LIKE '"+search.getText()+"%'"); 

打印字符串中的查询,并检查您是否得到正确的值,然后返回光标。

试试这个,说!

3

下面放方法在你的数据库类:

public ArrayList<String> getlist(String search) { 

     ArrayList<String> alTasklist = new ArrayList<String>(); 

     try { 
      Cursor mCursor = db.query(true, Contactsnew.TABLE02, 
        new String[] { your field list }, SearchColumnname + "='" + search 
          + "'", null, null, null, null, null); 

      if (mCursor != null) { 
       mCursor.moveToFirst(); 
       for (int i = 0; i < mCursor.getCount(); i++) { 
        alTasklist.add(mCursor.getString(0)); 
        mCursor.moveToNext(); 
       } 
       mCursor.close(); 
       return alTasklist; 
      } 
      return alTasklist; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return alTasklist; 
    } 

现在得到这个方法在你的活动,然后初始化数组列表返回到列表视图...

0

尝试this way

Cursor cTitle=db.rawQuery("SELECT * FROM "+ Contactsnew.TABLE02 + " WHERE " 
        + Contactsnew.userid + " = " + GetSet.getUserId() + " AND " + Contactsnew.TITLE + 
        " LIKE '"+search.getText()+"%'");