ListView
Android は初めてで、データベースからエントリを削除した後に a を更新する際に問題が発生しています。
私の活動では、各行ListView
に複数の選択肢があります。checkboxes
ユーザーが削除ボタンを押した後、deleteName()
呼び出されます。deleteName()
は、 でチェックされたすべての名前を削除しますListView
。名前はデータベースから削除されますが、ListView
更新されることはありません。
使ってみadapter.notifyDataSetChanged()
ましたが何も起こりません。ListView
更新しないのはなぜですか?
public void deleteName() {
NamesDataSource datasource = new NamesDataSource(this);
datasource.open();
ListView listView = (ListView) findViewById(android.R.id.namelist);
SparseBooleanArray checked = listView.getCheckedItemPositions();
List<Name> values = datasource.getAllNames();
ArrayAdapter<Name> adapter = new ArrayAdapter<Name>(this, android.R.layout.simple_list_item_multiple_choice, values);
for (int i = 0; i < checked.size(); i++) {
int position = checked.keyAt(i);
if (checked.valueAt(i))
datasource.deleteName(adapter.getItem(position));
}
adapter.notifyDataSetChanged();
setListAdapter(adapter);
datasource.close();
}