【发布时间】:2011-06-08 04:00:38
【问题描述】:
我正在使用带有 ArrayAdapter 的 AutoCompleteTextView,它的工作方式与预期的一样。
问题是,我必须使用自动完成值更改数组。调用 notifyDataSetChanged() 没有帮助。未显示任何更改。
你知道解决这个问题的方法吗?
【问题讨论】:
标签: android adapter android-arrayadapter
我正在使用带有 ArrayAdapter 的 AutoCompleteTextView,它的工作方式与预期的一样。
问题是,我必须使用自动完成值更改数组。调用 notifyDataSetChanged() 没有帮助。未显示任何更改。
你知道解决这个问题的方法吗?
【问题讨论】:
标签: android adapter android-arrayadapter
您需要为问题添加更多详细信息,但根据您对问题的猜测,我会说实施中存在一些问题。
notifyDataSetChanged() 通知视图重新加载数据。如果 ArrayAdapter 中的数据设置方法引用了未更改的数据实体,notifyDataSetChanged() 将不起作用。
扩展 ArrayAdapter 的自定义适配器实现通常具有一个内部数据结构,该结构是适配器的数据源,其中包含您需要的 AutoComplete 值。
【讨论】:
不要修改ArrayList 并调用notifyDataSetChanged(),因为它对 ArrayAdapters 没有影响(实现似乎已损坏)。
直接在ArrayAdapter 上使用clear()、add()、insert() 和remove(),而不是在ArrayList 上使用这些方法。
【讨论】:
ArrayAdapter#remove(Object) 后跟ArrayAdapter#notifyDataSetChanged 来工作。