调用notifyDataSetChanged后更新适配器内的数据

时间:2013-01-21 17:24:25

标签: android android-listview

我使用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
   }
}

1 个答案:

答案 0 :(得分:0)

我会说你有你需要的一切,当你打电话给 notifyDataSetChanged 时应该自动更新mContent,在getView方法中你可以用数据填充你的视图。
当你调用notifyDataSetChanged时会自动调用getView,如果你正确实现了它,就会把新数据放到你的视图中。

PS:我不知道这对你来说是否重要,但只会调用getView以适应屏幕的位置。如果您有更多数据,然后最初可见,getView将在保存数据的视图变为可见时呈现其他数据(例如,当您有ListView并开始向下滚动时)。