首页 > 解决方案 > 旋转后如何维护单选按钮和复选框

问题描述

我这样做的方法是将选定的单选按钮和复选框存储到它们各自的变量中,就像我在 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){

        }
    }

标签: javaandroid

解决方案


您可以通过在清单文件中的活动标签上添加此代码来防止活动在轮换时被破坏。

<activity android:name=".MyActivity"
          android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
          android:label="@string/app_name">

这会阻止在配置更改期间重新创建活动。

但是最好的方法是使用ViewModel


推荐阅读