我希望有人可以帮助我了解当方向改变时 Android radio 组和 onCheckedChanged 回调发生了什么。

我有一个带有三个单选按钮的单选组。通过将checked 属性设置为true,将第二个按钮定义为默认按钮。我的 radio 组xml如下:

    <RadioGroup
        android:id="@+id/rgReportRange"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/One" />

        <RadioButton
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="@string/Two" />

        <RadioButton
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Three" />
    </RadioGroup>

RadioGroup 有一个 onCheckedChangedListener。当方向改变时, onCheckedChangedListener 会根据在方向改变之前选择的按钮不同地回调。

如果选择了 button1,我会看到一个对 onCheckedChanged 方法的回调,checkedID 等于 button1。

如果选择 button2,我看不到 onCheckedChanged 方法的回调。

如果选择了 button3,我会看到 onCheckedChanged 方法的两个回调。第一个回调的checkedID 等于button2。第二个回调的checkedID 等于button3。

我不明白第一种和第三种情况之间的行为差​​异。在两者中,除了默认选择之外,还有一个单选按钮。

最佳答案

对 xml 文件进行更改,例如:

         <activity android:name=".YourActivityName"
        android:configChanges="orientation|screenSize" />

关于android - 方向改变时的 radio 组行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10647001/

10-12 04:22