在适配器上使用 add/remove 并使用 notifyDataSetChanged() 使您不必一遍又一遍地创建新的适配器。
全局声明你的适配器
ArrayAdapter<Object> adapter;
当您将某些内容添加到适配器附加到的对象列表(字符串或您使用的任何对象)时,向适配器添加一个添加函数并调用 notifyDataSetChanged:
adaper.add(Object);
adapter.notifyDataSetChanged();
当您从列表中删除项目时,还添加:
adapter.remove(Object);
adapter.notifyDataSetChanged();
编辑:默认情况下,像 add() 和 remove() 这样更改列表的方法会自动调用 notifyDataSetChanged() (请参阅Android 开发人员文档中的 setNotifyOnChange(boolean))
公共无效 setNotifyOnChange (boolean notifyOnChange)
控制更改列表的方法(add、addAll(java.util.Collection)、addAll(java.lang.Object[])、insert、remove、clear、sort(java.util.Comparator))是否自动调用 notifyDataSetChanged。如果设置为 false,调用者必须手动调用 notifyDataSetChanged() 以使更改反映在附加视图中。默认值为 true,调用 notifyDataSetChanged() 会将标志重置为 true。
所以你不需要每次都调用 notifyDataSetChanged() 。如果您发现是这种情况,您可以使用 setNotifyOnChange(true)
adapter.setNotifyOnChange(true); //only need to call this once
adapter.add(Object); //no need to call notifyDataSetChanged()