1

我在 xml 中使用以下代码生成两个 RadioButtons,它们之间有一个分隔符:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:paddingLeft="60dp"
            android:text="Male" />

        <View
            android:id="@+id/firstDivider"
            android:layout_width="2dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="40dp"
            android:background="#939393" />

          <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:paddingLeft="60dp"
            android:text="Female" />

    </LinearLayout>

这工作正常,并且正在 ViewPager 中使用(在其中一个选项卡中)。

有趣的是,如果我在 ViewPager 中来回滚动足够多,其中一个按钮上的文本将变为女性。所以,最后,我得到了 2 个女单选按钮。

这看起来与视图回收有关,但由于它们是 2 个明显硬编码的按钮(而不是 ListView 项目,例如),我不确定它为什么会发生。

当然,我可以添加button.setText(...)java (希望能修复它),但我刚刚注意到这一点,我对此没有任何解释。

编辑:正如预期的那样,当我强制关闭并重新启动应用程序时,它会切换回正常状态-我必须重复该过程才能获得两个Female按钮。如果我切换到另一个活动/etc/etc,它仍然停留在两个“女性”按钮上。

4

1 回答 1

1

两者的资源 idRadioButtons都是android:id="@+id/radioButton1".

如果在布局文件中创建并且它们具有 id,Android 会自动保存 UI 元素(小部件)的“状态”。

第二个RadioButton具有文本“女性”的事实意味着它将覆盖第一个文本“男性”的保存,但由于相同的 id,两者在重新创建时都会收到相同的文本。

于 2012-11-26T03:12:46.853 回答