有人请解释为什么我在对话框(AlertDialog)之后保存应用程序设置(SharedPreferences),并以下列方式更新ListAdapter项目中的数据mListItems.get(viewPosition).setValue(prefsIntValue);
(mListItems
- 是main的成员活动)。关闭对话框窗口后,ListView中的视图更新,当我尝试在方法onActivityResult
中做同样的事情时(更新完成其他活动的数据),什么也没有换句话说,视图没有更新。答案就在这里notifyDataSetChanged example,但为什么第一种情况(在对话框之后)有效??
UPD:在notifyDataSetChanged
方法中更改列表数据后调用onActivityResult
有帮助!但请有人解释为什么在第一种情况下,在保存偏好时,它有效吗?!
答案 0 :(得分:0)
找到答案,因为在关闭AlertDialog窗口后调用方法onWindowFocusChanged
http://androidxref.com/4.2_r1/xref/frameworks/base/core/java/android/widget/AbsListView.java#2646,通过在上面的方法中调用layoutChildren
来重新绘制布局列表视图,其中发生了所有的魔法