我有一个listview,其中我在固定间隔后添加一些数据。但我不想再次设置适配器,因为它将刷新完整列表。是否有任何方法添加项目而不刷新完整列表。
提前致谢。
答案 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,如果您在适配器上使用添加,插入,删除和清除功能。