Android单选按钮已关闭,但未显示

时间:2016-06-16 09:04:56

标签: android android-layout android-fragments

我在xml中的无线电组中有2个静态单选按钮,如下所示:

 <RadioGroup
    android:id="@id/rdg_feed_event"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/txt_feed_calendar"
    android:layout_centerHorizontal="true"
    **android:checkedButton="@id/rdb_feed_event"**
    android:background="@drawable/radio_group_title"
    android:divider="@drawable/divider_title"
    android:orientation="horizontal"
    android:showDividers="middle">

    <RadioButton
        android:id="@id/rdb_feed_event"
        style="@style/Theme.RadioButton"
        android:background="@drawable/radio_btn_left_title"
        android:fontFamily="@string/font_family_normal"
        android:text="@string/feed_event"
        android:textColor="@drawable/radio_btn_text_gray_black"/>

    <RadioButton
        android:id="@id/rdb_feed_event_my"
        style="@style/Theme.RadioButton"
        android:background="@drawable/radio_btn_right_title"
        android:fontFamily="@string/font_family_normal"
        android:text="@string/feed_event_my"
        android:textColor="@drawable/radio_btn_text_gray_black"/>
</RadioGroup>

这一切都在onCreateView中设置为片段:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View view = super.onCreateView(inflater, container, savedInstanceState);

    mRdbEvent = (RadioButton) view.findViewById(R.id.rdb_feed_event);
    mRdbEventMy = (RadioButton) view.findViewById(R.id.rdb_feed_event_my);
    mRdgEvent = (RadioGroup) view.findViewById(R.id.rdg_feed_event);
  ..

当我首次加载应用程序时 - 按钮&#34;事件&#34;已选中并在视图中显示,表达式mRdgEvent.getCheckedRadioButtonId() == mRdbEvent.getId()将返回true。然后我点击第二个单选按钮,之后我点击其他菜单,导致另一个片段(使用FragmentTransaction.replace)。之后,我返回第一个片段 - 再次启动onCreateView方法,mRdgEvent.getCheckedRadioButtonId() == mRdbEvent.getId()再次onCreateView返回true。但是这次检查视图中的第二个单选按钮,而不是第一个。但代码显示1是检查的 - 因为默认情况下在xml中声明它被检查。怎么会这样? Thx提前。

2 个答案:

答案 0 :(得分:1)

我延迟了按钮的配置,它在onCreateView中工作如下:

view.post(new Runnable() {
        public void run() {
            mRdgEvent.check(mRdbEvent.getId());
        }
    });

答案 1 :(得分:0)

RadioButton 中添加 android:checked =“true”而不是 RadioGroup

<RadioButton
        android:id="@id/rdb_feed_event"
        style="@style/Theme.RadioButton"
        android:background="@drawable/radio_btn_left_title"
        android:fontFamily="@string/font_family_normal"
        android:text="@string/feed_event"
        android:checked="true"
        android:textColor="@drawable/radio_btn_text_gray_black"/>