天天看点

Android自定义RadioGroup实现单选完整示例

mainactivity如下:

[java] view

plaincopy

Android自定义RadioGroup实现单选完整示例
Android自定义RadioGroup实现单选完整示例

package cc.testradiogroup;  

import android.os.bundle;  

import android.widget.radiobutton;  

import android.widget.radiogroup;  

import android.widget.radiogroup.oncheckedchangelistener;  

import android.app.activity;  

/** 

 * demo描述: 

 * 利用自定义radiogroup实现单选 

 * 

 * 参考资料: 

 * 1 http://blog.csdn.net/xiaanming 

 * 2 http://bbs.51cto.com/thread-954128-1.html 

 *  

 *   thank you very much 

 */  

public class mainactivity extends activity {  

    private radiogroup mradiogroup;   

    @override  

    protected void oncreate(bundle savedinstancestate) {  

        super.oncreate(savedinstancestate);  

        setcontentview(r.layout.main);  

        init();  

    }  

    private void init(){  

        mradiogroup=(radiogroup) findviewbyid(r.id.radiogroup);  

        mradiogroup.setoncheckedchangelistener(new radiobuttononcheckedchangelistenerimpl());  

    // 监听单选的变化  

    private class radiobuttononcheckedchangelistenerimpl implements oncheckedchangelistener {  

        @override  

        public void oncheckedchanged(radiogroup group, int checkedid) {  

            radiobutton rb = (radiobutton) findviewbyid(group.getcheckedradiobuttonid());  

            string currentselected = rb.gettext().tostring();  

            system.out.println("现在选中是:" + currentselected);  

        }  

}  

main.xml如下:

[html] view

Android自定义RadioGroup实现单选完整示例
Android自定义RadioGroup实现单选完整示例

<?xml version="1.0" encoding="utf-8"?>  

<!-- 步骤如下: -->  

<!--1: android:button="@null" 去掉自带的图标   -->  

<!--2:android:drawableright="@drawable/line" 在文字的右边设置图片-->  

<!--3: android:drawablepadding="10dip" 图片与文字间的距离-->  

<!--4:android:layout_marginleft="-17dip" 每个radiobutton距离左边缘或者距其左radiobutton的距离-->  

<linearlayout   

    xmlns:android="http://schemas.android.com/apk/res/android"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    android:orientation="vertical"  

    android:gravity="center_horizontal" >  

    <textview  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:textsize="15sp"  

        android:text="测试自定义的radiogroup来实现单选功能" >  

    </textview>  

    <radiogroup  

        android:id="@+id/radiogroup"  

        android:orientation="horizontal"  

        android:background="@drawable/bg" >  

        <radiobutton  

            android:id="@+id/cai"  

            android:layout_width="wrap_content"  

            android:layout_height="wrap_content"  

            android:layout_marginleft="-17dip"  

            android:checked="true"  

            android:button="@null"  

            android:drawableright="@drawable/line"  

            android:drawablepadding="10dip"  

            android:text="菜"  

            android:textcolor="@drawable/text_selector" >  

        </radiobutton>  

            android:id="@+id/tang"  

             android:layout_marginleft="-15dip"  

            android:text="汤"   

            android:textcolor="@drawable/text_selector">  

            android:id="@+id/zhushi"  

            android:text="主   食"  

            android:id="@+id/zhou"  

            android:drawablepadding="15dip"  

            android:text="粥"  

    </radiogroup>  

</linearlayout>  

text_selector.xml如下:

Android自定义RadioGroup实现单选完整示例
Android自定义RadioGroup实现单选完整示例

<selector xmlns:android="http://schemas.android.com/apk/res/android" >  

      <item android:color="#ffffff" android:state_checked="true"/>  

      <item android:color="#000000"/>  

</selector>  

继续阅读