我的主要活动有几个片段,其中一个片段有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);
}
}
答案 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
来监听偏好活动的变更动作,然后主要活动/片段必须实现上面的界面。