いくつかの ListItems が入力されたリスト ビューがあります。「すべてのアイテムを削除」ボタンを含むオプションメニューもあります。このボタンを押すと、デフォルト以外のすべてのアイテムを削除するメソッドが呼び出され、ListView も更新されます。これはメニューコードです:
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
...
case R.id.optMenuDeleteAllCategories:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to delete all categories?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
**deleteAllCategories();**
}
これはdeleteAllCategories()
方法です:
public void deleteAllCategories()
{
manager.deleteAllCategories();
adapter.notifyDataSetChanged();
}
したがって、すべてが削除されますが、ListView は更新されません。変更を確認するには、アプリを終了して再度開く必要があります。adapter.notifyDataSetChanged();
また、メソッドを呼び出した直後に行を配置しようとしましたdeleteAllCategories
が、ListView はまだ更新されませんでした。
では、アプリを終了せずに更新するにはどうすればよいですか?