我使用BaseAdapter填充列表视图。我正在初始化适配器的构造函数中的内容变量。内容是单例实例。构造函数是我将设置内容变量的唯一地方。一旦我调用notifyDataSetChanged(),新数据将如何填充到变量。据我所知,构造函数只在创建对象时被调用一次。然后我需要在调用getView()期间每次获取数据。基本上如何在调用notifyDataSetChanged后更新适配器内的数据?我可以在适配器中使用一些公共方法,如setData(Content)。但我正在寻找BaseAdapter将提供的一些方法,我可以覆盖以设置内容。
MyAdapter extends BaseAdapter {
List<ContentItems> mContent;
public myAdapter() {
mContent = Content.getInstance().getContent();
}
public View getView(int position, View convertView, ViewGroup parent) {
mContent.get(position)
//using the content create view and return
}
}
答案 0 :(得分:0)
我会说你有你需要的一切,当你打电话给 notifyDataSetChanged 时应该自动更新mContent,在getView方法中你可以用数据填充你的视图。
当你调用notifyDataSetChanged时会自动调用getView,如果你正确实现了它,就会把新数据放到你的视图中。
PS:我不知道这对你来说是否重要,但只会调用getView以适应屏幕的位置。如果您有更多数据,然后最初可见,getView将在保存数据的视图变为可见时呈现其他数据(例如,当您有ListView并开始向下滚动时)。