0

在我的 Android 应用程序中,我SharedPreferences用来让用户管理一些设置。现在,在用户更改任何设置并从设置页面返回应用程序后,我希望我的视图(片段)使用 SharedPreferences 中的最新值。

这些更改可能包括重新加载自定义视图以使用配色方案或删除列表视图的过滤。

目前仅当应用程序重新启动时,才会应用所需的更改。我确信有办法解决我的问题,但我无法弄清楚。

假设我支持 Android 2.2 及更高版本,因此除非支持库中存在,否则可能不会使用任何更新的 API。

4

2 回答 2

1

不完全确定您的问题是什么,但在我看来,当您的用户更改设置然后点击后退按钮返回到片段时,您没有看到更改?如果是这种情况,那是因为当用户返回时,android 会恢复堆栈中片段的版本(进行任何更改之前的片段)。我的建议是尝试将新共享首选项的加载移动到片段的 onResume 方法。这样,当用户返回时,它们应该被加载。

尝试这个

@Override
public void onResume(){
super.onResume();
setContentView(R.layout.currentFrag); 

}

这应该使用正确的更改重新加载页面。

于 2013-08-07T11:33:54.390 回答
0

您需要使用 onWindowFocusChanged 方法来检查当前活动是否失去焦点。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);
    // Add the code to perform on the fragments after the settings have changed.
}
于 2013-08-07T13:21:47.067 回答