使用PreferenceActivity时刷新Preferences的视图

时间:2011-06-17 02:02:42

标签: java android

我正试图强制PreferenceActivity刷新。有谁知道怎么做?

我有一个ResetDefaultsPreference类,其子类为Preference,并且在单击时,应该重置为默认所有其键以某个前缀开头的首选项。它可以工作,但是当我点击重置首选项时,该屏幕中的所有首选项都不会更新,直到我退出屏幕并返回。(这适用于某些自定义颜色首选项,但即使这样也不适用于某些{ {1}} s - 对于那些我必须离开并重新输入ListPreference本身以显示更新值的人。)

我尝试通过获取根视图和PreferenceActivity来解决此问题,但这似乎不起作用。这是刷新显示的行。它位于invalidate()子类的一部分,用于保存Preference中创建的Context

mContext

在更改和提交首选项值之后会发生这种情况。 (值会更改,但显示不会。)有谁知道我如何强制PreferenceActivity自我刷新?

1 个答案:

答案 0 :(得分:13)

我不知道如何“刷新”PreferenceActivity,但您可以为用户创建幻觉。它将关闭并重新打开没有动画的活动,因此它看起来好像值只是改变了。

Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);