我正在编写一个保存您的偏好的小应用程序。在主活动中,应显示这些首选项。但是,当从 PreferenceActivity 类返回时,我仍然得到旧值。只有当我通过“返回”按钮真正退出应用程序时,视图才会更新。
我尝试将 setText 命令放在 onResume() 和 onRestoreInstanceState() 函数中,但实际上没有一个刷新它。
我该怎么做才能让它刷新?
我正在编写一个保存您的偏好的小应用程序。在主活动中,应显示这些首选项。但是,当从 PreferenceActivity 类返回时,我仍然得到旧值。只有当我通过“返回”按钮真正退出应用程序时,视图才会更新。
我尝试将 setText 命令放在 onResume() 和 onRestoreInstanceState() 函数中,但实际上没有一个刷新它。
我该怎么做才能让它刷新?
您应该覆盖 onSharedPreferenceChanged 以响应更改的偏好:
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {
//code
}
如果从主活动中直接调用 PreferenceActivity,则解决方案是使用 startActivityForResult 方法启动 PreferenceActivity。此方法允许将一些数据从启动的活动传递回启动它的活动。这意味着您必须在主要活动中实现 onActivityResult 方法。
如果您选择此解决方案,请查看官方文档上的文章“Getting a Result from an Activity”:http: //developer.android.com/training/basics/intents/result.html