在ListAdapter上调用notifyDataSetChanged

时间:2012-11-17 14:56:52

标签: android listadapter

我有一个ListAdapter,如下所示:

setListAdapter(new ArrayAdapter<String>(DeleteMenu.this,             
                                  android.R.layout.simple_list_item_1, 
                                  classes));

我想在notifyDataSetChanged()函数中调用onListItemClick()。我尝试了几种不同的方法,并在StackOverFlow中查看了类似的问题,但我仍然无法弄明白。

有人可以帮忙吗?

编辑:我应该更清楚,我没有收到错误,我根本就不知道在函数notifyDataSetChanged()上调用什么方法。我是否必须将ListAdapter分配给变量并将其称为var.notifyDataSetChanged()

3 个答案:

答案 0 :(得分:7)

您应该在适配器上调用notifyDataSetChanged

Adapter adapter = new Adapter();
ListView list = (ListView) findViewById(R.id.listview);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();

答案 1 :(得分:7)

您可以通过获取对适配器的引用来调用方法notifyAdapterChanged()。您可以保留本地引用(如user1411084s的答案),也可以通过调用:

来检索它
getListAdapter()

需要注意的是,接口ListAdapter不提供方法notifyDataSetChanged(),因此您应该将其强制转换为您之前分配的适配器类型。

结果将如下所示(能够调用ListActivity / ListFragment中的任何位置:

((ArrayAdapter) getListAdapter()).notifyDataSetChanged();

答案 2 :(得分:1)

((BaseAdapter) listView.getAdapter()).notifyDataSetChanged(); 

在这个答案中查看更多信息: https://stackoverflow.com/a/4198569/3994630