自定义RadioButton

来源:互联网 发布:淘宝宝贝被管控怎么办 编辑:程序博客网 时间:2024/06/15 18:47

  有时候,我们需要多个Button控件,而且这些控件互相限制,这个时候,我们就可以想到RadioGroup。以下为部分代码,附带着demo源代码。


1、自定义RadioButton

package com.shao.button.buttonlistener;


import android.content.Context;
import android.util.AttributeSet;
import android.widget.RadioGroup;


public class ButtonRadioGroup extends RadioGroup {


public ButtonRadioGroup(Context context) {
super(context);
}


public ButtonRadioGroup(Context context, AttributeSet attrs) {
super(context, attrs);
}


@Override
protected void onFinishInflate() {
super.onFinishInflate();
changeButtonsImages();
}


private void changeButtonsImages(){
int count = super.getChildCount();


if(count > 1){
super.getChildAt(0).setBackgroundResource(R.drawable.absence_radio);
for(int i=1; i < count-1; i++){
super.getChildAt(i).setBackgroundResource(R.drawable.ask_radio);
}
super.getChildAt(count-1).setBackgroundResource(R.drawable.late_radio);
}else if (count == 1){
super.getChildAt(0).setBackgroundResource(R.drawable.init_button);
}
}
}


2、自定义Adapter布局

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="10dip"
            />


        <TextView
            android:id="@+id/studentname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="15sp" />


        <TextView
            android:id="@+id/studentid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="15sp" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="horizontal" >


        <com.shao.button.buttonlistener.ButtonRadioGroup
            android:id="@+id/button_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dip"
            android:checkedButton="@+id/button_one"
            android:orientation="horizontal" >


            <RadioButton
                android:id="@id/button_one"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_margin="3dp"
                android:button="@null"
                android:gravity="center"
                android:minHeight="33dip"
                android:minWidth="40dip" />


            <RadioButton
                android:id="@+id/button_two"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_margin="3dp"
                android:button="@null"
                android:gravity="center"
                android:minHeight="33dip"
                android:minWidth="40dip" />


            <RadioButton
                android:id="@+id/button_three"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_margin="3dp"
                android:button="@null"
                android:gravity="center"
                android:minHeight="33dip"
                android:minWidth="40dip" />
        </com.shao.button.buttonlistener.ButtonRadioGroup>
    </LinearLayout>

</LinearLayout>



        源代码下载:ButtonListener.zip




0 0
原创粉丝点击