如何在列表视图中添加更多项而不刷新上一项

时间:2012-07-24 07:41:30

标签: android

我有一个listview,其中我在固定间隔后添加一些数据。但我不想再次设置适配器,因为它将刷新完整列表。是否有任何方法添加项目而不刷新完整列表。

提前致谢。

4 个答案:

答案 0 :(得分:0)

您可能希望使用以下内容(RecycleView而不是ListView):

notifyItemInserted(0);//NOT notifyDataChanged()
recyclerViewSource.scrollToPosition(0);
//Scroll up, to use this you'll need an instance of the adapter's RecycleView 

答案 1 :(得分:-1)

您可以致电adapter.notifyDataSetChanged()来更新列表。

适配器的getView()在不同的时间被调用,没有特定的模式。因此,只要ListView希望更新您的观点,就会更新您的观看次数。

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

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

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

答案 2 :(得分:-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();
}

答案 3 :(得分:-1)

你可以使用它。notifyDataSetChanged()

但是,notifyDataSetChanged()仅适用于ArrayAdapter,如果您在适配器上使用添加,插入,删除和清除功能。