2012-02-25 9 views
1

Hyはみんな正しい行を見つけることができませんチュートリアル付きのデータベースを作成しました。アイテムを追加したり削除したりすることができます。アイテムを探して、結果をクレタードのリストビューに取り込みます。これまでのところ:AndroidのSQLデータベースは、私は私の最初のアプリを作成するには、Androidに新しいが、非常に熱心だ:)だから、おそらくこれは、データベース:)</p> <p>私についてではない、私の最後の質問になります 、

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, todoItems)); 
      ListView lv = getListView(); 
      lv.setTextFilterEnabled(true); 

     hornot info = new hornot(this); 
     info.open(); 


     Cursor c = info.getSearched("108"); 

     if (c.moveToFirst()) 
     { 
     do{ 
        todoItems.add(c.getString(0) + " " + c.getString(1) + " " + c.getString(2)); 
      }while (c.moveToNext()); 
     } 
      if (todoItems.size() > 0) 
      { 
     lv.setAdapter(new ArrayAdapter<String>(sqlsearch.this,android.R.layout.simple_list_item_1, todoItems)); 
      } 



      info.close(); 

     } 

私のデータベースでgetSearched()関数は次のようになります。ご覧のとおり

public Cursor getSearched(String qq) { 
     String[] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_HOTNESS}; 
      return ourDatabase.query(DATABASE_TABLE, columns, qq , null, null, null, null); 


    } 

が、私はそれで、QQを含む行を選択したいと思います。しかし、私はKEY_ROWIDが108に等しい行を選択したいと思います。現時点では、必要な行だけでなく、完全な表をリストビューに入れます。このコードで何が問題になっていますか?それはWHERE選択句です(私はあなたが欲しいものを理解場合は、事前

答えて

1

おかげで、私は知りませんが、あなたはKEY_ROWID 108でレコードを取得したい場合は、queryメソッドの第三パラメータを使用します)。

public Cursor getSearched(String qq) { 
     String[] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_HOTNESS}; 
      return ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + " = " + qq , null, null, null, null); 
} 
+0

はい、これは必要な構文です:)ありがとうございます! –