ArrayAdapter.remove 的UnsupportedOperationException

在我的代码中,我有一个ListActivity 。 列表项的上下文菜单选项之一是“删除”,它会打开确认操作的对话框。 我打算通过首先删除数据库中的项目数据然后从ArrayAdapter删除它来实现此function。 它是从ArrayAdapter中删除它得到UnsupportedOperationException

 public void onClick(DialogInterface dialog, int id) { asynchronousDeleteEntry(CONTEXT_SELECTED_ID); dialog.dismiss(); //I -know- that the adapter will always be an object //of ArrayAdapter because this is the only type //I ever call setListAdapter with. Debugging confirms this @SuppressWarnings("unchecked") final ArrayAdapter adapter = (ArrayAdapter) journalViewerListActivity.this.getListAdapter(); //EXCEPTION OCCURS HERE adapter.remove(adapter.getItem(CONTEXT_SELECTED_POSITION)); //refreshes the ListView to show the new items adapter.notifyDataSetChanged(); 

任何帮助赞赏。 谢谢!

当您使用数组初始化ArrayAdapter时,似乎会出现此问题。 尝试使用List初始化它。 参考: 为什么不能从ArrayAdapter中添加/删除项目?

您正在尝试修改声明为final列表。 编译器试图警告你,但你已经通过@SuppressWarnings("unchecked")抑制警告@SuppressWarnings("unchecked")