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