4

我有一个ListAdapter如下图:

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

我试图notifyDataSetChanged()在一个onListItemClick()函数中调用它。我尝试了几种不同的方法,并在 StackOverFlow 上查看了类似的问题,但我仍然无法弄清楚。

有人可以帮忙吗?

编辑:我应该更清楚,我没有收到错误,我只是不知道在什么上调用函数notifyDataSetChanged()方法。我是否必须将 my 分配ListAdapter给一个变量并像这样调用它var.notifyDataSetChanged()

4

3 回答 3

9

您应该调用notifyDataSetChanged适配器。

Adapter adapter = new Adapter();
ListView list = (ListView) findViewById(R.id.listview);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
于 2012-11-17T15:01:39.903 回答
8

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

getListAdapter()

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

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

((ArrayAdapter) getListAdapter()).notifyDataSetChanged();
于 2013-08-09T03:20:30.400 回答
3
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged(); 

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

于 2018-01-05T09:31:11.130 回答