我有一個配置文件imageview,兩個文本視圖和一個喜歡的imageview的列表視圖。
在我上面提供的列表視圖的搜索框中,我想查詢sqlite數據庫並使用SimpleCursorAdapter獲取在我的listview中填充的更新結果。
使用SimpleCursorAdapter更新基於sqlite查詢的listview
以下是我的create table語句,它顯示了涉及的所有列。
public static String CREATE_TABLE_STMT="create table "
+CONTACT_TABLE+" ("
+ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"
+NAME+" varchar(100) NOT NULL UNIQUE ,"
+PHONE+" varchar(100) ,"
+EMAIL+" varchar(100) ,"
+JOBTITLE+" varchar(100) ,"
+WEBPAGE+" varchar(100) ,"
+PICTUREURL+" varchar(100) ,"
+THUMBNAILURL+" varchar(100) ,"
+PICTUREPATH+" varchar(100) ,"
+THUMBNAILPATH+" varchar(100))";
我想運行以下查詢來搜索具有與我的搜索文本匹配的「名稱」的行。具體而言,我試圖檢索名稱列值以搜索查詢開頭的行。
String searchQuery = "SELECT ID as _id," + AppConstants.NAME+","+AppConstants.JOBTITLE+","+AppConstants.THUMBNAILURL + " from " + AppConstants.CONTACT_TABLE + " where " + AppConstants.NAME + " LIKE '" + query + "';";
- 搜索「人」應該返回其名稱後面全行作爲「阿蘭」
- 搜索「壽」應該返回其名稱爲「托馬斯」回整行
運行查詢後,我檢查遊標值並嘗試更新我的列表視圖
if (cursor != null) {
Log.i(AppConstants.APPUILOG,"cursor not null");
cursor.moveToFirst();
String[] from = new String[] new String[] {NAME,JOBTITLE,THUMBNAILURL};
int[] to = new int[] {R.id.textViewMain,R.id.textViewSub,R.id.contact_icon};
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.contact_list_item, cursor, from, to);
mainListView.setAdapter(cursorAdapter);
}else {
Log.i(AppConstants.APPUILOG,"cursor is null");
}
但是這段代碼總是給出空白的listview。
- 我是否必須自定義SimpleCursorAdapter才能實現相同?
- 我需要在查詢中做什麼修改?
- 如何創建自定義SimpleCursorAdapter並顯示更新結果?
請參閱'FilterQueryPrivider'文檔 – pskink