现在的位置: 首页 > 综合 > 正文

单选按钮RadioButton使用

2019年07月29日 ⁄ 综合 ⁄ 共 1831字 ⁄ 字号 评论关闭

1、单选按钮使用

在默认情况先,单选按钮显示为一个圆形图标,并且在该图标旁边放置一些说明性文字。在程序中,一般将多个单选按钮放置在按钮组里面,使用这些按钮表现出来某些功能,当用户选中某个单选按钮后,按钮组中的其他按钮将被自动取消选中状态。在Android中,单选按钮使用RadioButton表示,而RadioButton有是Button的子类,所有单选按钮可以直接使用Button支持的各种属性。


在Android中,可以使用两种方法向屏幕中添加单选按钮:一种是通过XML布局文件中使用<RadioButton>标记添加;另一种是在Java中,通过new关键字创建。在XML中通过<RadioButton>添加单选按钮如下:

<RadioButton 
      android:id="@+id/ID号"
      android:text="显示文本"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:checked="true|false"
      >
        
</RadioButton>

RadioButton组件中的android:checked 属性用于指定选中状态,属性值为true,表示选中;属性值为false时,表示取消选中,默认为false。

通常情况下,RadioButton组件需要与RadioGroup组件一起使用,组成一个单选按钮组。在XML布局文件中,添加RadioGroup组件的基本格式如下:

<RadioGroup 
        android:id="@+id/ID号"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <!-- 添加多个RadioGroup组件 -->
</RadioGroup>	


2、获取单选按钮组中选中项的值

获取单选按钮组中选中项的值,通常存在以下两种情况:一种是在改变单选按钮组的值时获取,另一种是在单击其他按钮时获取。

1)在改变单选按钮组的值时获取

在改变单选按钮组的值来获取选中项的值时,首先需要获取单选按钮组,然后为其添加OnCheckedChangeListener,并在其onCheckedChange()方法中根据参数checkedIdea获取被选中的单选按钮,并通过其getText()方法获取该单选按钮对应的值。代码实现如下:

RadioGroup sex = (RadioGroup)findViewById(R.id.radoiGroup);
sex.setOnCheckedChangeListener(new OnCheckedChangeListener(){

	@Override
	public void onCheckedChanged(RadioGroup group, int checkedId) {
	// TODO Auto-generated method stub
	RadioButton r = (RadioButton)findViewById(checkedId);
	r.getText();//获取被选中的单选按钮的值
	}		
});	

2)单击其他按钮时获取

单击其他按钮时获取选中项的值,首先需要在该按钮单击事件监听器的onClick()方法中,通过for循环语句遍历当前单选按钮组,并根据被遍历到的单选按钮组的isChecked()方法判断该按钮是否被选中,当被选中时,通过单选按钮的getText()方法获取对应的值。

final RadioGroup sex = (RadioGroup)findViewById(R.id.radoiGroup);
Button submitBtn = (Button)findViewById(R.id.button);
submitBtn.setOnClickListener(new OnClickListener(){

	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		for(int i=0; i<sex.getChildCount(); i++){
			RadioButton r = (RadioButton)sex.getChildAt(i);
			if(r.isChecked()){
				r.getText();
				break;
			}
		}
	}
});

抱歉!评论已关闭.