方位变化的放射性组行为

时间:2012-05-18 05:07:48

标签: android radio-button screen-orientation

我希望当方向发生变化时,有人可以帮助我了解Android无线电组和onCheckedChanged回调的情况。

我有一个带三个单选按钮的广播组。通过将checked属性设置为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。当方向发生变化时,onChckedChangedListener将根据在方向更改之前选择的按钮进行不同的回调。

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

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

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

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

2 个答案:

答案 0 :(得分:-1)

对xml文件进行如下更改:

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

答案 1 :(得分:-2)

打开您的manifest.xml文件并在Activity&lt;&gt;中修改tag:

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

之后检查你的结果::))