Я получил курсор из базы данных и установил адаптер в ListView. Затем я вставляю новую строку в базу данных, но мой ListView не обновлялся.Update ListView
Cursor c = getContentResolver().query(GEN_URI, null, null, null, null);
String[] from = { DB.column_name };
int[] to = { R.id.textViewItem };
myAdapter = new SimpleCursorAdapter(this, R.layout.shop_list_item, c, from, to, SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
\t
ShopList.setAdapter(myAdapter);
ContentValues newC = new ContentValues();
newC.put(DB.column_name, "Селёдочка");
Uri uri = getContentResolver().insert(SHOP_LIST_URI, newC);
getContentResolver().query(GEN_URI, null, null, null, null);
myAdapter.notifyDataSetChanged();
Если установить флаг SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER - ListView не обновляются. Если я установил флаг SimpleCursorAdapter.FLAG_AUTO_REQUERY- ListView update.
Что делать?
Вы пробовали myAdapter.notifyDataSetChanged(); после обновления данных? –
см. CursorAdapter # onContentChanged, этот метод вызывается при использовании флага FLAG_REGISTER_CONTENT_OBSERVER, вы можете переопределить этот метод в своем CursorAdapter и делать все, что хотите, базовая реализация здесь: http://androidxref.com/5.0.0_r2/xref/frameworks/ base/core/java/android/widget/CursorAdapter.java # 444 – pskink