`
sarin
  • 浏览: 1756916 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
E3b14d1f-4cc5-37dd-b820-b6af951740bc
Spring数据库访问系列...
浏览量:173657
C2083dc5-6474-39e2-993e-263652d27795
Android学习笔记
浏览量:368124
5f40a095-b33c-3e8e-8891-606fcf3b8d27
iBatis开发详解
浏览量:189261
B272a31d-e7bd-3eff-8cc4-c0624ee75fee
Objective-C学习...
浏览量:99838
社区版块
存档分类
最新评论

Android学习笔记七:基本视图组件:RadioGroup和RadioButton

阅读更多
    接上文
   在Web开发中,HTML的<input type="radio">可以实现单选按钮,单选按钮主要用于多值选一的操作,比如性别的选择,仅能从“男”或“女”中选择,那么就可以使用单选按钮实现。那么在Android中实现单选就需要使用到RadioGroup和RadioButton两个视图组件,它们结合使用才能达到单选按钮的效果。
    首先我们来看看这两个组件的文档:


java.lang.Object
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.LinearLayout
   ↳ android.widget.RadioGroup

    可以看出,RadioGroup是线性布局管理器LinearLayout的子类,那么也就说明,在RadioGroup中的组件是线性排列的,也就是说RadioButton线性排列在RadioGroup内。RadioGroup可以视为是RadioButton的容器,下面来看看RadioButton的文档:


java.lang.Object
   ↳ android.view.View
   ↳ android.widget.TextView
   ↳ android.widget.Button
   ↳ android.widget.CompoundButton
   ↳ android.widget.RadioButton

   RadioButton是Button类的间接子类,它直接继承自CompoundButton,这样的设计也是为了复选框Checkbox的设计提出公共的父类。
   下面在Eclipse中新建一个项目,我们来介绍RadioGroup和RadioButton的使用:
    <TextView
        android:id="@+id/genderLabel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="请选择您的性别"
        android:textSize="20dp" />
    <RadioGroup
        android:id="@+id/gender"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <RadioButton
            android:id="@+id/male"
            android:text="男" />
        <RadioButton
            android:id="@+id/female"
            android:text="女" />
    </RadioGroup>

    对于TextView组件不做解释了,就是用于一个提示信息,之后我们定义了一个RadioGroup,设置这个组件的一些属性,这里我们设置ID和长宽信息。注意它是先行布局管理器的子类,是放置RadioButton的容器,那么这里我们这是一个orientation属性来规定RadioButton的排列方式,这里vertical表示纵垂直向排列。
    在RadioGroup中定义了两个RadioButton组件,就是两个具体的单选按钮,首先分别设置ID,之后就是要显示的文字,没什么可多说的。下面运行程序来看看效果:

    这里呈现出了单选按钮的效果。在Web开发中,HTML的单选按钮有默认选中设置,使用<input type="radio" checked>来标识,那么在Aandroid中,我们也可以设置默认选中的项目,修改代码如下
        <RadioButton
            android:id="@+id/male"
            android:checked="true"
            android:text="男" />

    这里表示默认选中“男”,和HTML代码十分类似,但我们还有另外一种标识默认选中的方法,代码如下:
    <RadioGroup
        android:id="@+id/gender"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:checkedButton="@+id/female"
        android:orientation="vertical" >

    我们在RadioGroup中用checkedButton属性来设置也是可以的,其直为RadioButton的ID,那么我们就不用在具体的RadioButton上来标识了,从而保持RadioButton代码的一致性,运行程序,得到如下效果:

    此时和我们设置的是一致的,默认选中的是“女”。默认选中的意义在于,如果用户漏选某个值,而这个值要提交给后台程序处理,恰恰又没有校验的时候,那么不会引起后台程序的错误,这个设置是很有必要的。在Web开发中,对于单选按钮,通常也会设置默认选中的一个值。
    看过竖直排列后,我们来看看水平排列的效果,很简单,修改RadioGroup的orientation为horizontal即可:
    <RadioGroup
        android:id="@+id/gender"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:checkedButton="@+id/male"
        android:orientation="horizontal" >

    运行代码,我们可以看到如下效果:

    这样,选项就水平排列了。
   下面我们使用程序来对RadioGroup和RadioButton进行控制,比如新加入一个需求,性别可以选择保密,并且设置保密为默认选中状态,那么在代码中,我们可以这么来实现:
package org.ourpioneer;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
public class RadioDemoActivity extends Activity {
	private RadioGroup radioGroup;
	private RadioButton radio;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);
		radio = new RadioButton(this);
		radio.setChecked(true);
		radio.setText("保密");
		radioGroup = (RadioGroup) super.findViewById(R.id.gender);
		radioGroup.addView(radio);
	}
}

   在这里,我们将RadioGroup和RadioButton作为类的成员变量出现。首先是创建RadioButton组件,和之前的组件一样,构造方法接受一个Context类型的变量,就是this。其次设置这个按钮为默认选中的状态,并且给出提示信息“保密”。之后获取到我们在main.xml文件中定义的RadioGroup组件,并向这个RadioGroup中添加我们新创建的RadioButton,那么运行程序,我们可以看到如下效果:

    这样也就实现了在程序中动态地对单选按钮组件的控制。
    这部分源代码请参考附件。
    接下文
  • 大小: 77.2 KB
  • 大小: 76 KB
  • 大小: 30.9 KB
  • 大小: 31 KB
  • 大小: 31.3 KB
  • 大小: 33.2 KB
4
6
分享到:
评论
2 楼 mmlinux 2014-11-06  
有问题:“保密”一直是选中状态,根本无法取消选择。。。
1 楼 qianguming 2013-09-29  
紧紧跟随7

相关推荐

    Android学习笔记

    7. RadioGroup和RadioButton:用于单选按钮组,RadioGroup是单选按钮的容器,内部包含多个RadioButton,android:orientation属性定义其内部元素的排列方式,vertical表示垂直排列。 8. CheckBox:复选框控件,常...

    android开发笔记总结

    ### Android开发笔记总结 #### 学习基础 在深入探讨Android开发之前,我们先回顾...通过以上内容的学习,开发者可以更好地理解和应用Android中各种视图组件的功能与属性,从而构建出更加美观、实用的应用程序界面。

    android学习笔记之一常用控件.doc

    这篇学习笔记主要涵盖了几个常见的控件:EditText、RadioGroup与RadioButton、CheckBox、Spinner、AutoCompleteTextView以及MultiAutoCompleteTextView,还包括了DatePicker和TimePicker的使用。 1. **EditText**:...

    刚开始学习android笔记,和一些控件的整理

    12. **画图**:Android提供了多种绘图API,如`Canvas`和`Paint`。 - 示例代码: ```java Canvas canvas = holder.lockCanvas(null); Paint paint = new Paint(); paint.setColor(Color.RED); canvas....

    《Android应用开发揭秘》读书笔记

    《Android应用开发揭秘》读书笔记不仅是一份个人学习历程的记录,更是一部深入浅出的Android开发指南。本书籍及笔记覆盖了从基础知识到高级应用的广泛内容,为初学者和有经验的开发者提供了宝贵的资源。 ### ...

    Android开发实战经典----自己学习的笔记总结

    在Android开发中,基础知识至关重要,本笔记主要涵盖了从Java编程基础到Android UI组件的详细讲解。首先,开发者需要具备扎实的Java基础,包括面向对象的概念、MVC设计模式的应用,以及对HTML、JavaScript和XML的...

    新版Android开发教程+笔记11--可视化UI设计DroidDraw

    8. **添加RadioGroup和RadioButton**:用于选择不同的货币类型。 9. **放置Button**:在RelativeLayout中定位,用于执行货币转换操作。 10. **编辑TextView属性**:设定文本内容和字体样式,提升界面的易读性和...

    新版Android开发教程+笔记

    TextView用于显示文本,EditText用于用户输入,RadioGroup和RadioButton用于创建单选选项,而Button则用于触发用户操作。在DroidDraw中,开发者可以轻松地拖放这些控件,并通过属性编辑器调整它们的属性,如文本内容...

Global site tag (gtag.js) - Google Analytics