如何使用BaseAdapter刷新ListView

时间:2016-01-13 16:45:06

标签: java android listview arraylist notifydatasetchanged

我尝试使用notifyDataSetChanged()刷新我的listview,但是这个标记为红色。我像使用扩展适配器一样使用ListView,因此notifyDataSetChaned应该可以正常工作,但不是。

下面是我的声明ListView和ArrayList。

SUM(...) SUM(...)

我以这种方式设置了我的列表:

ListView listview;
ArrayList<ListData> myList = new ArrayList<>();

我也使用setOnScrollListener,我希望我的listview在SROLL_STATE = 0时刷新;

listview = (ListView) findViewById(R.id.listView);
listview.setAdapter(new MyBaseAdapter(this, myList));

2 个答案:

答案 0 :(得分:2)

notifyDataSetChanged() BaseAdapter 类的一种方法, ListView 类。因此,调用listView.notifyDatasSetChanged();在逻辑上和语法上都是不正确的。

替换此行
listView.getAdapter().notifyDataSetChanged();

一切顺利:)

答案 1 :(得分:2)

定义Adapter对象, MyBaseAdapter adapter = new MyBaseAdapter(this,myList); adapter.notifyDataSetChanged();