请考虑以下代码。
List<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, resource, textViewResourceId, list);
// Method 1 : Add an item.
adapter.add("ITEM1");
// Method 2 : Add an item
list.add("ITEM2");
我想知道,将项目添加到ArrayAdapter
的正确方法是什么?在我看来,两种方法都可以正常工作。
答案 0 :(得分:1)
如果您已将AdapterView
附加到ArrayAdapter
,则方法1会更新关联的AdapterView
。方法2没有,要求您致电notifyDataSetChanged()
上的ArrayAdapter
。
通常,您在创建ArrayList
之前填充ArrayAdapter
,然后使用方法1稍后动态添加新条目(例如,基于用户数据条目)。
答案 1 :(得分:0)
这就是我的工作,特别是对于我的搜索结果页面 - 随着用户向下滚动(列表更改)而增长。
我会保留一个本地的String列表,该列表是全局的, 初始化适配器(也是本地和全局), 有一个指定的方法改变字符串的ArrayList, 然后调用adapter.notifyDataSetChanged();
这不仅会更新您的列表,还会更新适配器以使其同步工作。
希望这有帮助,
最好的, -serkan