java - 旋转后如何维护单选按钮和复选框
问题描述
我这样做的方法是将选定的单选按钮和复选框存储到它们各自的变量中,就像我在 onSaveInstanceState() 中所做的那样,但我被困在 onRestoreInstanceState() 中。我正在尝试以编程方式检查 onRestoreInstanceState() 中的单选按钮和复选框。旋转后是否有任何简单的方法来维护单选按钮和复选框?还是我走在正确的轨道上?
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
//Get the selected radio button and store it in outState
int radioID = rg_Cooked.getCheckedRadioButtonId();
radiobutton = findViewById(radioID);
outState.putString("selectedRadioButton", radiobutton.getText().toString());
//Store the selected checkboxes in outState. aListOfAddOns is an array list
outState.putStringArrayList("selectedCheckboxes", aListOfAddOns);
}
@Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if(savedInstanceState != null){
}
}
解决方案
您可以通过在清单文件中的活动标签上添加此代码来防止活动在轮换时被破坏。
<activity android:name=".MyActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
android:label="@string/app_name">
这会阻止在配置更改期间重新创建活动。
但是最好的方法是使用ViewModel
推荐阅读
- node.js - 节点 JS:编辑 .hbs 文件不反映浏览器视图中的更改
- mysql - MySQL 中 BIT(64) 列的奇怪行为
- jsp - request.setAttribute inside a loop
- ios - Swift - 为什么即使在分配值之后,我也会从隐式解包的可选变量中获取可选值?
- ruby-on-rails - RSpec Rails - subject + assigns as one liner?
- python-3.x - Tkinter (python3) How to insert text vertically in Text widget?
- javascript - 反应 componentsDidUpdate 与 SetState 回调
- java - 在 JAVA 中打印两个日期之间的小时、秒日期
- ruby-on-rails - 如何使用 rspec 为序列化程序编写单元测试
- php - 将 PDF 文件另存为 PDF 而不是 PHP