setChecked不工作单选按钮android?

时间:2017-11-20 23:39:18

标签: java android layout radio-button checked

我使用radioRealButton来做这样的事情 enter image description here

一切运行良好并且显示如上图所示,当按钮点击onClickbuttonListener时,我可以获得id

这是我的xml,我在我的自定义对话框

中加载了此布局
 <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="@dimen/size_10"
                android:layout_marginRight="@dimen/size_10"
                android:layout_marginTop="@dimen/size_5"
                android:gravity="center_vertical"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginRight="@dimen/size_15"
                    android:layout_weight="2"
                    android:text="Select Size"
                    android:textColor="@color/colorBlack"
                    android:textSize="18sp" />

                <co.ceryle.radiorealbutton.RadioRealButtonGroup
                    android:id="@+id/radGroupSize"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="2.5"
                    app:rrbg_animate="true"
                    app:rrbg_animateTexts_enter="cycle"
                    app:rrbg_backgroundColor="@color/colorGrey"
                    app:rrbg_dividerColor="@color/colorPrimary"
                    app:rrbg_checkedButton="@id/radSize_S" //<-- this give u first button as default checked
                    app:rrbg_dividerSize="1dp"
                    app:rrbg_selectorColor="@color/colorPrimary"
                    app:rrbg_selectorFullSize="true"
                    app:rrbg_selectorSize="2dp">

                    <co.ceryle.radiorealbutton.RadioRealButton
                        android:id="@+id/radSize_S"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="top"
                        android:gravity="top"
                        app:rrb_checked="true"
                        app:rrb_ripple="true"
                        app:rrb_rippleColor="@color/colorBlack"
                        app:rrb_text="S"
                        app:rrb_textColor="@color/colorBlack"
                        app:rrb_textFillSpace="true"
                        app:rrb_textSize="11sp" />

                    <co.ceryle.radiorealbutton.RadioRealButton
                        android:id="@+id/radSize_M"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        app:rrb_ripple="true"
                        app:rrb_rippleColor="@color/colorBlack"
                        app:rrb_text="M"
                        app:rrb_textColor="@color/colorBlack"
                        app:rrb_textSize="11sp" />

                    <co.ceryle.radiorealbutton.RadioRealButton
                        android:id="@+id/radSize_L"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        app:rrb_ripple="true"
                        app:rrb_rippleColor="@color/colorBlack"
                        app:rrb_text="L"
                        app:rrb_checked="true"
                        app:rrb_textColor="@color/colorBlack"
                        app:rrb_textSize="11sp" />
                </co.ceryle.radiorealbutton.RadioRealButtonGroup>
            </LinearLayout>

我已经在java.class

中尝试了这些代码
RadioRealButtonGroup radGroupSize = (RadioRealButtonGroup)dialog.findViewById(R.id.radGroupSize);
RadioRealButton radSizeM = (RadioRealButton)dialog.findViewById(R.id.radSize_M);

        radGroupSize.getChildAt(1).setActivated(true); // <----- doesn't work

        radSizeM.setSelected(true); // <----- doesn't work
        radSizeM.setChecked(true); // <----- doesn't work

我想根据java class

中的变量值将默认选中状态更改为另一个按钮

我怎么能做到这一点?

1 个答案:

答案 0 :(得分:2)

它为我工作

RadioRealButtonGroup radGroupSize=(RadioRealButtonGroup)findViewById(R.id.radGroupSize);

RadioRealButton radSize_S=(RadioRealButton)findViewById(R.id.radSize_S);
RadioRealButton radSize_M=(RadioRealButton)findViewById(R.id.radSize_M);
RadioRealButton radSize_L=(RadioRealButton)findViewById(R.id.radSize_L);

//set position for default radiobutton
radGroupSize.setPosition(2);