片段在android中第二次加载时如何保存片段数据

时间:2017-11-10 05:51:39

标签: android fragment

我有一个片段,它有复选框列表和一些字段,我想要的是当用户选择复选框并转到下一个片段时,当返回时,该复选框需要保持其状态,选中或取消选中。< / p>

2 个答案:

答案 0 :(得分:0)

我猜你调用了getSupportFragmentManager().beginTransaction().replace(R.id.fl_container, fragment, tag).commit(),这可以让你的片段重新创建,只需使用getSupportFragmentManager().beginTransaction().show/hide(fragment).commit(),所有状态都可以保持。如果您仍想调用replace切换片段,可以将所有状态保存为其父Activity中的共享数据,然后您可以保存或恢复一个片段的状态。

答案 1 :(得分:0)

共享偏好是一个好主意。数据将存储在共享首选项中,并且始终可用。也可以覆盖数据。

这将为您提供相同的基本概念:Shared Preference

示例代码:

SharedPreferences.Editor editor = 
getActivity().getSharedPreferences(prefKey, MODE_PRIVATE).edit();
    editor.putString("checked", "yes"); //set a flag if checked
    editor.apply();

SharedPreferences prefs = getActivity().getSharedPreferences(prefKey, MODE_PRIVATE);
if (prefs.contains("checked")){
            String chStatus= prefs.getString("checked",null);
            if((chStatus!=null)) {
               checkBox.setChecked(true);
            }
        }