RadioButon 获取单选按钮组选中值的两种方法!

在单选按钮中我们一般需要获得当前用户选择的按钮值是什么,想要得到用户的选择有两种方法。

第一种:在改变单选按钮组的值时获取。在改变单选按钮的值时获取选中项的值时,首先需要获取单选按钮组,然后为其添加OnCheckedChangeListener,并在onCheckedChanged()方法中根据参数checkedId获取被选中的单选按钮,并通过其getText()方法获取该单选按钮对应的值;

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

xml代码:定义一个RadioGroup组里面放入两个RadioButton,一个提交按钮;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:text="您的性别是?"
        />
    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >

        <RadioButton
            android:id="@+id/radioButton01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:checked="true"
            android:text="男"
            />

           <RadioButton
            android:id="@+id/radioButton02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:text="女"
            />
    </RadioGroup>

    <Button
        android:id="@+id/submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="  提    交   "
        />
</LinearLayout>

JAVA代码:

package com.example.radiobutton;

import android.os.Bundle;
import android.R.integer;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       /**
        * 1、在改变单选按钮组的值时获取。在改变单选按钮的值时获取选中项的值时,首先需要获取单选按钮组,
        * 然后为其添加OnCheckedChangeListener,并在onCheckedChanged()方法中根据参数checkedId获取
        * 被选中的单选按钮,并通过其getText()方法获取该单选按钮对应的值
        */
//        RadioGroup sexGroup = (RadioGroup)findViewById(R.id.radioGroup1);
//        sexGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
//
//			@Override
//			public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
//				// TODO Auto-generated method stub
//				RadioButton radioButton = (RadioButton)findViewById(checkedId);
//				Log.i("tag", "lsn 单选按钮,您的性别是:"+radioButton.getText());//获取被选中的单选按钮的值
//			}
//		});

        /**
         * 2、单击其他按钮时获取
         * 首先需要在该按钮的单击事件的监听器的onClick()方法中,
         * 通过for循环语句遍历当前按钮组,并根据被遍历到的单选按钮的isChecked()方法
         * 判断该按钮是否被选中,当被选中时,通过单选按钮的getText()方法获取对应的值。
         */
        final RadioGroup sexRadioGroup = (RadioGroup)findViewById(R.id.radioGroup1);
        Button btnSubmit = (Button)findViewById(R.id.submit);
        btnSubmit.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				for(int i=0;i<sexRadioGroup.getChildCount();i++){
					RadioButton radioButton = (RadioButton)sexRadioGroup.getChildAt(i);
					if(radioButton.isChecked()){
        Log.i("tag", "lsn 单选按钮,您的性别是:"+radioButton.getText());
					}
				}
			}
		});
    }

}

在logCat中看到的结果如下:

时间: 2024-10-23 05:44:28

RadioButon 获取单选按钮组选中值的两种方法!的相关文章

获取对象中值的两种方法

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="button" name="" id="btn" value="按钮" /> <input type=&

获取母版页的相关内容有两种方法 --全了

获取母版页的相关内容有两种方法 1 通过findcontrol找控件ID需要在此事件中~因为Page_load中时是先内容页加载然后才是母版页加载    protected void Page_LoadComplete(object sender, EventArgs e)    {        Label2.Text = "现在时间是" + (Master.FindControl("Label1") as Label).Text;        if (Requ

选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别

一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 var data={ "show_in_list": 1, "enums": [ { "value": "B2B", "key": "1" }, { "value": &

获取作用域里的值的4种方法

获取作用域里的值的4种方法: 1.java代码: <%request.getAttribute()%> 2.${requestScope/username} 3.<s:property value="#session.username"> 4.不知道作用域时候: <s:property value="#attr.username"/>

android 中传递对象两种方法探索(Serializable,Parcelable)

相信大家在android开发的过程中总会遇到要在Activity中间传递数据的情况,当然,遇到需要在Intent中传递对象的情况也不可避免,所以我就so了一下相关的知识,在这里总结消化一下.就目前来说,我了解到的只有两种方式: 1.利用Bundle.putSerializable(Key,Object): 2.利用Bundle.putParcelable(Key, Object): 下面详细介绍两种方法的使用和区别: 首先第一点,这两种方法实现的前提都需要将传递的对象Object序列化,那么,问

获取系统当前可用串口的两种方法

进行串口通信之前,需要获取当前系统的可用串口.要想达到此目的,有两种方式,读取注册表和使用CreateFile函数轮询读取串口. 1.使用CreateFile轮询读取串口: 1 UINT CComDebugToolDlg::GetSerialPortState() 2 { 3 CString strCom; 4 int nCom=0; 5 HANDLE hCom; 6 7 do 8 { 9 nCom++; 10 strCom.Format("COM%d",nCom); 11 12 hC

使用JS准确获取URL网址中参数的几种方法

记录下使用JS准确获取URL网址中参数的方法: 参考链接1. https://blog.csdn.net/Zhihua_W/article/details/54845945?utm_source=blogxgwz9 2.https://blog.csdn.net/william_jzy/article/details/84942781 原文地址:https://www.cnblogs.com/lwming/p/10954725.html

递归很耗内存+多项式求值的两种方法+c语言计时方法

1.用for循环写一个函数,实现从1开始输出到N的正整数. 有两宗实现方法,一种是递归,另一种是非递归 //非递归 void PrintN1(int N){ int i; for(i=1;i<=N;i++){ printf("%d\n",i); } return; } //递归 递归对空间的需求很大,当数字很大的时候,需要很大的内存,当数字是十万的时候递归就崩了 void PrintN2(int N){ if(N){ PrintN2(N-1); printf("%d\n

获取表单value值的几种方法

参考:https://blog.csdn.net/akikang/article/details/80796331 form 设置了name属性,比如<form name="art_form"> <input name="user">  就可以通过var username = art_form.user.value 获取到user的值. 原文地址:https://www.cnblogs.com/bneglect/p/12428045.html