0

有人请解释为什么当我在对话框(AlertDialog)之后保存应用程序设置(SharedPreferences),并以以下方式更新ListAdapter项目中的数据mListItems.get(viewPosition).setValue(prefsIntValue);mListItems- 是主要活动的成员)。关闭对话框窗口后,ListView 中的视图被更新,当我尝试在方法中执行相同的操作onActivityResult(在其他活动完成时更新数据)时,什么也没有发生,换句话说,视图没有更新。一种答案在这里是notifyDataSetChanged 示例,但是为什么第一种情况(在对话框之后)起作用!?

UPD:notifyDataSetChanged在我更改方法中的列表数据后调用有onActivityResult帮助!但是请有人解释一下为什么在第一种情况下,在保存首选项时,它起作用了?!

4

1 回答 1

0

找到了答案,因为在我关闭 AlertDialog 窗口后调用了方法onWindowFocusChanged http://androidxref.com/4.2_r1/xref/frameworks/base/core/java/android/widget/AbsListView.java#2646,布局​​列表视图正在重绘通过调用layoutChildren上面的方法,所有的魔法都会发生。

于 2012-12-31T14:06:42.567 回答