先 list.setAdapter(new ArrayAdapter(..., arrayList)),后在 readContacts() 中向 arrayList 添加數據,UI 自動顯示新數據,未調用 notifyDataSetChanged()。
ArrayAdapter 構造時持有 arrayList 的引用。內部通過 DataSetObservable 實現觀察者模式:当列表結構發生變化(添加/刪除元素)時,ArrayList 並不會自動通知適配器。但實測能顯示,原因通常是:
務必在數據變更后調用:
adapter.notifyDataSetChanged();
或使用 ArrayAdapter 的 add()、insert()、remove() 方法,它們內部會自動通知更新。
notifyDataSetChanged()。RecyclerView + DiffUtil 精準局部刷新。