我在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提前。
答案 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"/>