8

我有一个列表视图,我在固定间隔后添加一些数据。但我不想再次设置适配器,因为它会刷新完整列表。是否有任何方法可以在不刷新完整列表的情况下添加项目。

提前致谢。

4

4 回答 4

1

您可能想要使用以下内容(在RecycleViewnot中ListView):

notifyItemInserted(0);//NOT notifyDataChanged()
recyclerViewSource.scrollToPosition(0);
//Scroll up, to use this you'll need an instance of the adapter's RecycleView 
于 2016-12-25T21:07:26.357 回答
-1

你可以用这个。notifyDataSetChanged()

但是 notifyDataSetChanged() 仅适用于 ArrayAdapter,如果您在 Adapter 上使用 add、insert、remove 和 clear 函数。

于 2012-07-24T07:48:28.167 回答
-1

你可以打电话adapter.notifyDataSetChanged()来更新列表。

适配器的getView()调用时间不同,没有特定的模式。因此,您的视图会在需要更新时ListView更新。

但据我所知,您正在寻找adapter.notifyDataSetChanged. 工作流程应该是这样的。

Set adapter to ListView
Add data to adapter`
Call notifyDataSetChanged() on adapter.

它至少会阻止您的列表反弹到列表中的第一个项目。希望有帮助。

于 2012-07-24T07:43:52.117 回答
-1

您可以使用

adapter.add(<new data item>); // to add data to your adapter
adapter.notifyDatasetChanged();  // to refresh

例如。

ArrayAdapter<String> adapter;

public void onCreate() {
   ....
   ....

   ArryList<String> data = new ArrayList<String>();
   for(int i=0; i<10; i++) {
     data.add("Item " + (i+1));
   }

   adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
   setListAdapter(adapter);
}

现在,每当您有新数据要添加到列表中时,您都可以执行以下操作

private void appendToList(ArrayList<String> newData) {
    for(String data : newData)
        adapter.add(data);

    adapter.notifyDatasetChanged();
}
于 2012-07-24T07:46:16.270 回答