解决RadioGroup多行显示,单选问题

效果如下:

QQ图片20170224110543.png
QQ图片20170224110557.png

RadioGroup多行显示其实就是两个RadioGroup进行切换,使用RadioGroup的clearCheck()方法进行操作

1、布局如下:

                  <RadioGroup
                        android:id="@+id/rg_manhole_state_one"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:layout_toRightOf="@id/tv_manhole_state"
                        android:orientation="horizontal"
                        android:paddingTop="@dimen/padding_5">

                        <RadioButton
                            android:id="@+id/rb_intact"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:button="@null"
                            android:drawableLeft="@drawable/bg_radiobutten"
                            android:drawablePadding="@dimen/padding_10"
                            android:text="@string/intact"
                            android:textColor="@color/white"
                            android:textSize="@dimen/small_size" />

                        <RadioButton
                            android:id="@+id/rb_lose"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="30dp"
                            android:button="@null"
                            android:drawableLeft="@drawable/bg_radiobutten"
                            android:drawablePadding="@dimen/padding_10"
                            android:text="@string/lose"
                            android:textColor="@color/white"
                            android:textSize="@dimen/small_size" />

                        <RadioButton
                            android:id="@+id/rb_sunken"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="30dp"
                            android:button="@null"
                            android:drawableLeft="@drawable/bg_radiobutten"
                            android:drawablePadding="@dimen/padding_10"
                            android:text="@string/sunken"
                            android:textColor="@color/white"
                            android:textSize="@dimen/small_size" />
                    </RadioGroup>
                 <RadioGroup
                    android:id="@+id/rg_manhole_state_two"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/padding_100"
                    android:layout_marginTop="5dp"
                    android:orientation="horizontal"
                    android:paddingTop="@dimen/padding_5">

                    <RadioButton
                        android:id="@+id/rb_occupation"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:button="@null"
                        android:drawableLeft="@drawable/bg_radiobutten"
                        android:drawablePadding="@dimen/padding_10"
                        android:text="@string/occupation"
                        android:textColor="@color/white"
                        android:textSize="@dimen/small_size" />

                    <RadioButton
                        android:id="@+id/rb_damage"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="30dp"
                        android:button="@null"
                        android:drawableLeft="@drawable/bg_radiobutten"
                        android:drawablePadding="@dimen/padding_10"
                        android:text="@string/damage"
                        android:textColor="@color/white"
                        android:textSize="@dimen/small_size" />

                    <RadioButton
                        android:id="@+id/rb_heave"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="30dp"
                        android:button="@null"
                        android:drawableLeft="@drawable/bg_radiobutten"
                        android:drawablePadding="@dimen/padding_10"
                        android:text="@string/heave"
                        android:textColor="@color/white"
                        android:textSize="@dimen/small_size" />
                </RadioGroup>


2、具体操作如下:

声明控件:


    /**
     * 完好
     */
    @InjectView(R.id.rb_intact)
    RadioButton rbIntact;
    /**
     * 丢失
     */
    @InjectView(R.id.rb_lose)
    RadioButton rbLose;
    /**
     * 凹陷
     */
    @InjectView(R.id.rb_sunken)
    RadioButton rbSunken;
    @InjectView(R.id.rg_manhole_state_one)
    RadioGroup rgManholeStateOne;
    /**
     * 占用
     */
    @InjectView(R.id.rb_occupation)
    RadioButton rbOccupation;
    /**
     * 损坏
     */
    @InjectView(R.id.rb_damage)
    RadioButton rbDamage;
    /**
     * 凸起
     */
    @InjectView(R.id.rb_heave)
    RadioButton rbHeave;
    @InjectView(R.id.rg_manhole_state_two)
    RadioGroup rgManholeStateTwo;

设置监听:

       rgManholeStateOne.setOnCheckedChangeListener(new OnMyManholeStateOneCheckedChangeListener());
        rgManholeStateTwo.setOnCheckedChangeListener(new OnMyManholeStateTwoCheckedChangeListener());

实现单选


    private class OnMyManholeStateOneCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {

        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int position) {
            switch (position) {
                case R.id.rb_intact:
                    if (rbIntact.isChecked())
                        rgManholeStateTwo.clearCheck();
                    break;
                case R.id.rb_lose:
                    if (rbLose.isChecked())
                        rgManholeStateTwo.clearCheck();
                    break;
                case R.id.rb_sunken:
                    if (rbSunken.isChecked())
                        rgManholeStateTwo.clearCheck();
                    break;
            }
        }
    }

    private class OnMyManholeStateTwoCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {

        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int position) {

            switch (position) {
                case R.id.rb_occupation:
                    if (rbOccupation.isChecked())
                        rgManholeStateOne.clearCheck();
                    break;
                case R.id.rb_damage:
                    if (rbDamage.isChecked())
                        rgManholeStateOne.clearCheck();
                    break;
                case R.id.rb_heave:
                    if (rbHeave.isChecked())
                        rgManholeStateOne.clearCheck();
                    break;
            }
        }
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,335评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,722评论 0 17
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,205评论 4 61
  • 如何快速有效地学习 ①底层知识 从底层知识开始学习,就好比开始建造地基,你能盖多高的楼,取决于你的地基打得有多厚。...
    枷行栅言阅读 1,267评论 0 1
  • 原创 图/网络 文/美美 树,是森林里的树 是一棵白桦树 ...
    音你而美漂亮宝贝阅读 1,794评论 0 0