0

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

1 回答 1

0

我想说你有你需要的一切,当你调用notifyDataSetChanged时, mContent 应该会自动更新,并且在 getView 方法中你可以用数据填充你的视图。
当你调用 notifyDataSetChanged 时,getView 会被自动调用,如果你正确地实现它,它将把新数据放到你的视图中。

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

于 2013-01-22T08:29:17.043 回答