Android组件 单项选择(RadioGroup和RadioButton)

/res/drawable/radiobuttonpic.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 组件选中时的状态图片 -->
	<item 
	    android:state_checked="true"
	    android:drawable="@drawable/radiobutton_on_bg"/>
	<!-- 组件非选中时的状态图片 -->
	<item 
	    android:state_checked="false"
	    android:drawable="@drawable/radiobutton_off_bg"/>
</selector>

/res/layout/main.xml代码如下:

<?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="vertical" 
    android:background="#FFFFFFFF"
    android:padding="10dip">

    <RadioGroup 
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        
        <RadioButton 
            android:id="@+id/rb1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="水蜜桃"
            android:textColor="#FF000000"
            android:button="@drawable/radiobuttonpic"/>
        
        <RadioButton 
            android:id="@+id/rb2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="苹果"
            android:textColor="#FF000000"
            android:button="@drawable/radiobuttonpic"/>
        
        <RadioButton 
            android:id="@+id/rb3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="荔枝"
            android:textColor="#FF000000"
            android:button="@drawable/radiobuttonpic"/>
    </RadioGroup>
    <TextView 
        android:id="@+id/result"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#FF000000"
        android:text="您选择的是:"/>
    
    <Button
        android:id="@+id/btnClear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="清楚"
        />
</LinearLayout>

Java代码如下:

package com.demo.android.radio;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView result;
	private Button btnClear;
    private RadioGroup radioGroup;
    private RadioButton rb1;
    private RadioButton rb2;
    private RadioButton rb3;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViews();
        setListeners();
    }

	private void setListeners() {
		//清楚按钮点击
		btnClear.setOnClickListener(btnClearOnClickListener);
		//单选框点击
		radioGroup.setOnCheckedChangeListener(radioGroupOnCheckedChangeListener);
	}
	
	private OnCheckedChangeListener radioGroupOnCheckedChangeListener=new OnCheckedChangeListener() {
		@Override
		public void onCheckedChanged(RadioGroup group, int checkedId) {
			if(checkedId==rb1.getId()){
				result.setText("您选择的是:"+rb1.getText().toString());
			}else if(checkedId==rb2.getId()){
				result.setText("您选择的是:"+rb2.getText().toString());
			}else if(checkedId==rb3.getId()){
				result.setText("您选择的是:"+rb3.getText().toString());
			}else{
				group.clearCheck();
				result.setText("您选择的是:");
			}
		}
	};
	
	private View.OnClickListener btnClearOnClickListener=new View.OnClickListener() {
		@Override
		public void onClick(View v) {
			radioGroup.clearCheck();
			result.setText("您选择的是:");
		}
	};

	private void findViews() {
		btnClear=(Button) findViewById(R.id.btnClear);
		result=(TextView) findViewById(R.id.result);
		radioGroup=(RadioGroup) findViewById(R.id.radioGroup);
		rb1=(RadioButton) findViewById(R.id.rb1);
		rb2=(RadioButton) findViewById(R.id.rb2);
		rb3=(RadioButton) findViewById(R.id.rb3);
	}
}

效果如下:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值