我使用自定義ContentProvider
在android中插入和查詢sqlite數據庫。當我查詢數據庫,我正在通過列表視圖填充數據。但問題是當我插入行我想更新列表視圖也。通過內容提供者插入行後更新listview
我已經創建了自定義適配器,通過擴展CursorAdapter
並收聽LoaderManager.LoaderCallbacks<Cursor>
,現在當我通過context.getContentResolver().insert()
函數插入行時,我想更新列表視圖。
我已經嘗試adapter.notifyDataSetChanged();
插入行後,但listview沒有得到更新。
我看到的唯一選擇是restartLoader()
有沒有其他的更新列表視圖?
這是我的插入代碼
context.getContentResolver().insert(
ContentUris.withAppendedId(
Uri.withAppendedPath(Columns.CONTENT_URI,
Columns.INSERT_LOGS),
Columns.LOGS),
values);
我正在將應用程序的日誌,並顯示到列表視圖
這裏是內容提供商的代碼裏面
if(rowId > 0){
Uri insertUri = ContentUris.withAppendedId(Columns.CONTENT_URI, rowId);
Log.e("inserted " , rowId+"");
getContext().getContentResolver().notifyChange(insertUri,null);
return insertUri;
}
顯示您的ContentProvider插入方法的樣子。你不應該使用adapter.notifyDatasetChanged時使用裝載機 – tyczj 2014-10-08 19:16:56
如果我動態添加任何行然後我的列表視圖沒有得到更新 – Hunt 2014-10-08 19:23:48
就像我說的在您的內容提供商發佈您的代碼插入方法只是爲例 – tyczj 2014-10-08 19:38:40