如何从PreferenceActivity更新片段?

时间:2015-06-25 13:16:57

标签: java android

我的主要活动有几个片段,其中一个片段有listview或gridview。我还有一个preferenceActivity来配置应用程序的外观和功能,特别是是否显示列表或网格。

当在首选项活动中更改列表/网格视图设置时,我想反映我的片段中的更改(位于我的应用程序的主要活动中)。我如何通过单独的活动这样做? (在偏好活动的演员阵容中)。

编辑 - 我设法通过使用onResume()回调来检查是否有任何相关的偏好更改,以及是否有更改:

public void onResume() {
    super.onResume();
    SharedPreferences settings = getActivity().getSharedPreferences("settings", 0);
    boolean layout = settings.getBoolean("layout", false);
    if (layout == true) {
        listview.setVisibility(View.VISIBLE);
        gridview.setVisibility(View.GONE);
    } else {
        listview.setVisibility(View.GONE);
        gridview.setVisibility(View.VISIBLE);
    }

}

2 个答案:

答案 0 :(得分:0)

您可以使用返回MainActivity中结果的PreferenceActivity来启动startActivityForResult。在onActivityForResult()中更新视图。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(resultCode == RESULT_OK){
            //Update the view.
        }
}//onActivityResult

答案 1 :(得分:0)

你应该创建一个interface来监听偏好活动的变更动作,然后主要活动/片段必须实现上面的界面。