`

Android---RadioButton(单选按钮)详解

 
阅读更多

 一: 单选按钮RadioButton在Android平台上也应用的非常多,比如一些选择项的时候,会用到单选按钮,实现单选按钮由两部分组成,也就是RadioButton和RadioGroup配合使用

 

    RadioButton的单选按钮;

    RadioGroup是单选组合框,用于将RadioButton框起来;

    在没有RadioGroup的情况下,RadioButton可以全部都选中;

    当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以选择一个;

 

    注意:单选按钮的事件监听用setOnCheckedChangeListener来对单选按钮进行监听

    例子:一道选择题,选择哪个城市美女最多,当然,这个就是为了测试

package org.loulijun.radio;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class RadioTest extends Activity {
    /** Called when the activity is first created. */
	TextView textview;
	RadioGroup radiogroup;
	RadioButton radio1,radio2,radio3,radio4;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        textview=(TextView)findViewById(R.id.textview1);
        radiogroup=(RadioGroup)findViewById(R.id.radiogroup1);
        radio1=(RadioButton)findViewById(R.id.radiobutton1);
        radio2=(RadioButton)findViewById(R.id.radiobutton2);
        radio3=(RadioButton)findViewById(R.id.radiobutton3);
        radio4=(RadioButton)findViewById(R.id.radiobutton4);
        
        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// TODO Auto-generated method stub
				if(checkedId==radio2.getId())
				{
					DisplayToast("正确答案:"+radio2.getText()+",恭喜你,回答正确!");
				}else
				{
					DisplayToast("请注意,回答错误!");
				}
			}
		});
    }
    public void DisplayToast(String str)
    {
    	Toast toast=Toast.makeText(this, str, Toast.LENGTH_LONG);
    	toast.setGravity(Gravity.TOP,0,220);
    	toast.show();
    }
}

 

strings.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">哪个城市美女多?</string>
    <string name="app_name">单选按钮测试</string>
    <string name="radiobutton1">杭州</string>
    <string name="radiobutton2">成都</string>
    <string name="radiobutton3">重庆</string>
    <string name="radiobutton4">苏州</string>
</resources>

 main.xml文件:注意,这里面,4个RadioButton包含在RadioGroup中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    android:id="@+id/textview1"
    />
    <RadioGroup
    	android:id="@+id/radiogroup1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:orientation="vertical"
    	android:layout_x="3px"
    >
    	<RadioButton
    		android:id="@+id/radiobutton1"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="@string/radiobutton1"
    	/>
    	<RadioButton
    		android:id="@+id/radiobutton2"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="@string/radiobutton2"
    	/>
    	<RadioButton
    		android:id="@+id/radiobutton3"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="@string/radiobutton3"
    	/>
    	<RadioButton
    		android:id="@+id/radiobutton4"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="@string/radiobutton4"
    	/>
    </RadioGroup>
</LinearLayout>

 

 运行结果如下:

 

二:Android 自定义RadioButton的样式(和上面关系不大

    我们知道Android控件里的button,listview可以用xml的样式自定义成自己希望的漂亮样式。

最近用到RadioButton,利用xml修改android:background="@drawable/button_drawable",其中button_drawable为自己定义的.xml文件(res/drawable文件下),但是不成功,到网上查找,也没有正确的说法,我就开始自己尝试,最后做好了。

其实方法很简单,同样在res/drawable新建radiobutton.xml如下

 

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

     <item   


           android:state_enabled="true"  

           android:state_checked="true" 

           android:drawable="@drawable/check" />   

     <item                

          android:state_enabled="true"      

           android:state_checked="false" 

           android:drawable="@drawable/checknull" />   

 </selector> 

 

check和checknull分别为选中和位选中的图片。
 
1 然后在你的布局文件中,RadioButton 布局
 
1 设置android:button = "@drawable/radiobutton",就可以了!

 前后图片对比如下:

 radio前radio后

 

分享到:
评论

相关推荐

    Android单选按钮RadioButton的使用详解

    今天小编就为大家分享一篇关于Android单选按钮RadioButton的使用详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    Android核心技术与实例详解 PDF扫描版

    4 4 2 单选按钮和复选按钮使用案例 4 5 图片控件 4 5 1 ImageView类简介 4 5 2 图片查看器 4 6 时钟控件 4 6 1 AnalogClock和DigitalClock类简介 4 6 2 时钟控件使用案例 4 7 日期与时间选择控件 4 7 1 DatePicker类...

    Android基本UI组件详解

    TextView(标签文本) ...RadioButton(单选按钮) Progressbar(进度条) Checkbox(检查框) SeekBar(滑动条) RatingBar(评分条) Chronometer(秒表) ZoomButton(缩放按钮) CalendarView(日历)

    Android基础知识详解

    单选框、复选框、开关状态按钮 69 单项选择(RadioGroup、RadioButton) 69 复选框(CheckBox) 71 开关状态按钮(ToggleButton) 73 下拉列表框Spinner 74 ScrollView、HorizontalScrollView 77 垂直滚动(ScrollView) ...

    Android典型技术模块开发详解

    7.7 RadioButton(单选按钮) 7.8 CheckBox(多选框) 7.9 Spinner(下拉列表) 7.10 AutoCompleteTextview(自动完成) 7.11 DataPicker&TimePicker;(日期&时间) 7.12 ProgressBar (进度条) 7.12.1 横向进度条 ...

    疯狂Android讲义源码

     2.3.4 单选按钮(RadioButton)和复选  框(CheckBox)介绍与应用 69  2.3.5 状态开关按钮(ToggleButton)  的功能与用法 71  2.3.6 时钟(AnalogClock和Digital  Clock)的功能与功法 73  2.3.7 图像视图...

    Android widget入门手册

    单选框(RadioButton)的使用.doc、 等级条(RatingBar)的使用.doc、 复选框(CheckBox)的使用.doc、 进度条(ProgressBar)的使用.doc、 可编辑文本框(EditText)的使用.doc、 列表框(ListView)的使用.doc、 日期选择器...

    疯狂Android讲义.part2

    2.3.4 单选按钮(RadioButton)和复选 框(CheckBox)介绍与应用 69 2.3.5 状态开关按钮(ToggleButton) 的功能与用法 71 2.3.6 时钟(AnalogClock和Digital Clock)的功能与功法 73 2.3.7 图像视图(ImageView)的...

    疯狂Android讲义.part1

    2.3.4 单选按钮(RadioButton)和复选 框(CheckBox)介绍与应用 69 2.3.5 状态开关按钮(ToggleButton) 的功能与用法 71 2.3.6 时钟(AnalogClock和Digital Clock)的功能与功法 73 2.3.7 图像视图(ImageView)的...

Global site tag (gtag.js) - Google Analytics