方向变化的无线电组行为

Posted

技术标签:

【中文标题】方向变化的无线电组行为【英文标题】:radiogroup behavior on orientation change 【发布时间】:2012-05-25 16:41:53 【问题描述】:

我希望有人可以帮助我了解有关 android 无线电组的情况以及方向更改时的 onCheckedChanged 回调。

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

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

        <RadioButton
            android:id="@+id/button1"
            android:layout_
            android:layout_
            android:text="@string/One" />

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

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

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

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

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

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

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

【问题讨论】:

这个问题也给我带来了问题。我找到了针对我的具体情况的解决方案,并在此处发布了答案***.com/questions/22438780/… 【参考方案1】:

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

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

【讨论】:

欢迎来到 Stack Overflow。虽然此代码可能会回答问题,但提供有关此代码回答问题的原因和/或方式的附加上下文会提高其长期价值。How to Answer【参考方案2】:

打开你的 manifest.xml 文件并在 Activity 标签中修改:

<activity
            android:configChanges="keyboardHidden|orientation"></activity>

在此之后检查您的结果::)

【讨论】:

感谢您的建议。这确实避免了这个问题。但我仍然很好奇它为什么会这样。

以上是关于方向变化的无线电组行为的主要内容,如果未能解决你的问题,请参考以下文章

第十六届智能车竞赛国赛队伍中节能信标组无线电能接收方案

带有jQuery的无线电行为的复选框

无线端icon是啥

html 使用无线电输入创建的按钮组。

android onCheckedChanged 用于无线电组

如果有一个未选中,如何检查多无线电组