Android 如何保存勾选的复选框

Android 如何保存勾选的复选框,android,checkbox,Android,Checkbox,我想要实现的是勾选复选框,当离开活动并返回时,勾选框应该仍然存在。然而,现在我勾选它,当我去一个不同的活动并返回勾选时,它就消失了。如何在复选框中保存勾号 这是我的密码: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout

我想要实现的是勾选复选框,当离开活动并返回时,勾选框应该仍然存在。然而,现在我勾选它,当我去一个不同的活动并返回勾选时,它就消失了。如何在复选框中保存勾号

这是我的密码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_tick, container, false);

    CheckBox checkBox = (CheckBox) rootView.findViewById(R.id.checkBox62);
            if(checkBox.isChecked())
             checkBox.setChecked(false);
            else 
             checkBox.setChecked(false);

            return rootView;
  }
}

任何帮助都将不胜感激。

您需要持久数据存储来维护状态

在您发布的代码中,复选框的值仅在视图处于活动状态时存储,因此,当您离开活动时,您将丢失该数据

你可以: 在应用程序类中添加一个变量 添加首选项 或者miriad的其他解决方案


其主要思想是您必须区分数据和视图。视图只存储每个实例的数据,您需要一个后端来维护它。

用户界面组件的状态由Android操作系统自动保存在名为
savedInstanceState
Bundle
包中(
onCreateView()
方法的参数)。但是,您可以通过重写
onSaveInstanceState()
方法将自定义数据添加到此
捆绑包中

此外,您的代码是错误的:您正在将
复选框
置于取消选中状态。完成这部分代码是无用的,因为它已经由Android管理。如果你真的想保留它,试着将它完全移除或修复

if(checkBox.isChecked())
    checkBox.setChecked(false); // Should be true to be algorithmically correct
else 
    checkBox.setChecked(false);
来源


SharedReferences中的Strore复选框值。当来到这个屏幕时,首先检查存储值。你能告诉我如何实现这个吗?阅读这个