在 Arrayadapter 中更新数据

我有这个问题,我有

private ArrayList<CustomItem> items; 
private ArrayAdapter<CustomItem> arrayAdapter;

我显示项目中存在的数据,我在列表视图中看到的这个数据,现在我想更新数据并看到这个新数据

if (!items.isEmpty()) {
    items.clear(); // i clear all data
    arrayAdapter.notifyDataSetChanged(); // first change
    items = getNewData();// insert new data and work well
    arrayAdapter.notifyDataSetChanged();  // second change                                      
}

在第一个更改中,我看到数据被清理,但在第二个更改中,我在listview中看不到新数据,我检查并且该项目不为空

我不知道错误在哪里,你能帮我吗?最佳雷加德安东尼奥


答案 1

以下是我使用新数据更新适配器的方式:

            if (arrayAdapter == null) {
                arrayAdapter = new CustomArrayAdapter(getActivity(), data);
                listview.setAdapter(userAutoCompleteAdapter);
            } else {
                arrayAdapter.clear();
                arrayAdapter.addAll(newData);
                arrayAdapter.notifyDataSetChanged();
            }

答案 2

假设 getNewData() 函数返回 ,是否可以更改以下行:ArrayList<CustomItem>

items=getNewData();

items.addAll(getNewData());

看看这是否有效?


推荐