the issue you're having is that you're overwriting the entries reference and it's not getting changed on the adapter. Here's how you can fix this
@Override
public void onResume() {
super.onResume();
entries.clear();
entries.addAll(contactStorage.getContactListNames());
adapter.notifyDataSetChanged();
Log.d(TAG, "List Frag Resumed");
}
this is a common mistake to make, it's caused because when you first create a list (in memory) and your entries field points to that, you then tell the adapter to look at that memory location when you create it, but onResume you create a new list in memory (when you get the contact list names again) and you tell entries to point to that new list in memory, what you need to do is replace the entries in the original list with the entries in the new list, that way the adapter will still reference the same list.
@Override
public void onResume() {
super.onResume();
entries.clear();
entries.addAll(contactStorage.getContactListNames());
adapter.notifyDataSetChanged();
Log.d(TAG, "List Frag Resumed");
}
this is a common mistake to make, it's caused because when you first create a list (in memory) and your entries field points to that, you then tell the adapter to look at that memory location when you create it, but onResume you create a new list in memory (when you get the contact list names again) and you tell entries to point to that new list in memory, what you need to do is replace the entries in the original list with the entries in the new list, that way the adapter will still reference the same list.
本文解决了一个常见问题:在Android应用中,当从内存中创建列表并将其与适配器关联时,在onResume方法中更新列表导致的数据不一致问题。通过直接替换原始列表中的条目而非重新分配引用,确保适配器指向最新的数据。
608

被折叠的 条评论
为什么被折叠?



