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复选框值。当来到这个屏幕时,首先检查存储值。你能告诉我如何实现这个吗?阅读这个