我希望有人可以帮助我了解 Android 无线电组和方向改变时的 onCheckedChanged 回调发生了什么。
我有一个带有三个单选按钮的单选组。通过将选中的属性设置为 true,将第二个按钮定义为默认按钮。我的无线电组的 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 方法的回调,其中 checkID 等于 button1。
如果选择了 button2,我看不到 onCheckedChanged 方法的回调。
如果选择了 button3,我会看到对 onCheckedChanged 方法的两个回调。第一个回调的checkedID 等于button2。第二个回调的 checkID 等于 button3。
我不明白第一种和第三种情况之间的行为差异。在两者中,除了默认选择之外,还有一个单选按钮。