Android---RadioButton(单选按钮)详解
来源:互联网 发布:淘宝台服战网点 编辑:程序博客网 时间:2024/04/30 17:39
一: 单选按钮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 RadioTestextends 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();
- }
- }
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() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {// TODO Auto-generated method stubif(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文件
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <stringname="hello">哪个城市美女多?</string>
- <stringname="app_name">单选按钮测试</string>
- <stringname="radiobutton1">杭州</string>
- <stringname="radiobutton2">成都</string>
- <stringname="radiobutton3">重庆</string>
- <stringname="radiobutton4">苏州</string>
- </resources>
<?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中
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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>
<?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如下
- <selectorxmlns: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>
<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"
,就可以了!
前后图片对比如下:
- Android---RadioButton(单选按钮)详解
- Android RadioButton 单选按钮
- RadioButton(单选按钮)
- android单选按钮(RadioButton)、复选框(CheckBox)
- android 自定义RadioButton(单选按钮)图标随便定.
- 玩转Android---UI篇---RadioButton(单选按钮)
- Android入门之单选按钮(RadioButton)
- Android 单选按钮RadioButton的使用
- android 单选按钮 RadioGroup RadioButton
- Android---18---RadioButton单选按钮
- Android控件:RadioButton(单选按钮)
- Android 单选按钮RadioButton的使用
- RadioButton单选按钮
- RadioButton单选按钮
- RadioButton单选按钮
- RadioButton单选按钮
- 单选按钮RadioButton
- 单选按钮RadioButton
- amChart for Flex 破解
- java里的时间类
- JAVA 静态代码块和构造函数
- halcon摄像机标定
- 探讨Parsley框架下Controller更新View的方法
- Android---RadioButton(单选按钮)详解
- 关于redhat9.0与arm-linux-gcc 编译链版本问题
- 跟燕十八学习PHP-第十三天-常用数组函数讲解
- 圆角listview
- 新计划
- Windows PE研究
- C语言计算结构体长度
- java-使用import
- sap aa table