当前位置: 代码迷 >> 综合 >> Android--(11)--解读单选(RadioButton)和复选(CheckBox)按钮
  详细解决方案

Android--(11)--解读单选(RadioButton)和复选(CheckBox)按钮

热度:56   发布时间:2023-12-14 20:54:06.0

一.单选按钮
1.单选按钮类:RadioButton
android:checked=”true”     设置该按钮是否选中;
android:button=”@null”     去掉按钮前的原点;
android:drawableRight=”@android:drawable/but_radio”     将圆形按钮设置在左侧显示

2.单选按钮控件通常与RadioGroup搭配使用。
     RadioGroup是LinearLayout的子类,用于将多个单选按钮组合为一组。
     同一按钮组内的单选按钮只能有一个被选中。
     RadioGroup最主要的xml属性是android:checkedButton,该属性用于设置组内默认被选中的单选按钮的id。RadioGroup最主要的方法有getCheckedRadioButtonId()和check(int radioButtonId)

<RadioGroup  android:orientation = "horizental"><RadioButton/><RadioButton/><RadioButton/><RadioButton/>
</RadioGroup>

3.单选按钮的事件处理:
     以RadioGroup为单位进行处理 setOnCheckedChangListener(new OnCheckedChangListener(){匿名方法})

     可以使用RadioGroup.getCheckedRadioButtonId()来获得选中的单选按钮的id值;

        group.setOnCheckedChangeListener(new OnCheckedChangeListener() {//对按钮组添加按钮事件;@Overridepublic void onCheckedChanged(RadioGroup arg0, int id) {//第一个参数为当前按钮组对象;第二个参数为当前按钮组选中的按钮的id值;// TODO Auto-generated method stubif (R.id.radio_1 == id) {//处理代码;}}});

二.复选按钮
用法基本与Button相同

CheckBox对象.isChecked()方法可以用来判断复选按钮是否选中
事件监听:
也是实现setOnCheckedChangListener(new OnCheckedChangListener(){匿名方法})

        CheckBox.OnCheckedChangeListener boxs = new CheckBox.OnCheckedChangeListener() {//复选框的添加事件@Overridepublic void onCheckedChanged(CompoundButton arg0, boolean arg1) {//第一个参数为调用此方法的当前复选框按钮,参数二为选中状态// TODO Auto-generated method stubif (box_1.isChecked() == true) {
   //可以使用isChecked()方法来获取并判断//执行代码;}if (arg1) {
   //直接判断按钮状态的值来处理//执行代码;}}};//给box_1添加事件监听;box_1.setOnCheckedChangeListener(boxs);

/*****************************************************************************************/

下面实现一个注册界面:点击注册按钮后显示所填写内容:

代码:
xml部分:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.logindemo_9015.MainActivity" ><GridLayoutandroid:id="@+id/grid"android:layout_width="match_parent"android:layout_height="wrap_content"android:columnCount="2"android:rowCount="6" ><TextViewandroid:id="@+id/lable_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:text="用户名:"android:textSize="18sp" /><EditTextandroid:id="@+id/text_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="fill"android:hint="请填写登录账号" /><TextViewandroid:id="@+id/lable_2"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="center_vertical"android:text="密码:"android:textSize="18sp" /><EditTextandroid:id="@+id/text_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:password="true"android:layout_gravity="fill" /><TextViewandroid:id="@+id/lable_3"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="center_vertical"android:text="年龄:"android:textSize="18sp" /><EditTextandroid:id="@+id/text_3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="fill"android:inputType="number" /><TextViewandroid:id="@+id/lable_7"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="center_vertical"android:text="性别:"android:textSize="18sp" /><RadioGroupandroid:id="@+id/sex"android:orientation="horizontal" ><RadioButtonandroid:id="@+id/men"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男" /><RadioButtonandroid:id="@+id/women"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女" /></RadioGroup><TextViewandroid:id="@+id/lable_4"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="center_vertical"android:text="生日:"android:textSize="18sp" /><EditTextandroid:id="@+id/text_4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="fill" /><TextViewandroid:id="@+id/lable_5"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="center_vertical"android:inputType="number"android:text="电话号码:"android:textSize="18sp" /><EditTextandroid:id="@+id/text_5"android:layout_gravity="fill"android:hint="请填写你的电话号码"android:inputType="number" /><TextViewandroid:id="@+id/lable_6"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="clip_horizontal"android:inputType="number"android:text="爱好:"android:textSize="18sp" /><GridLayoutandroid:id="@+id/grid"android:columnCount="2"android:layout_gravity="fill"android:rowCount="2" ><CheckBoxandroid:id="@+id/mesck"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="听音乐" /><CheckBoxandroid:id="@+id/booking"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="看小说" /><CheckBoxandroid:id="@+id/back"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="骑车" /><CheckBoxandroid:id="@+id/bool"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="打篮球" /></GridLayout><Buttonandroid:id="@+id/submit"android:layout_columnSpan="2"android:layout_gravity="fill"android:text="注册" /></GridLayout><TextViewandroid:id="@+id/show"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/grid" /></RelativeLayout>

界面主要采用线性布局实现,将线性布局放在了相对布局中;

java代码:


import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;public class MainActivity extends Activity {//声明变量信息:Button sumbit;EditText text_1,text_2,text_3,text_4,text_5;TextView show;RadioGroup group;CheckBox box_1,box_2,box_3,box_4;RadioButton redio_1,redio_2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取对象;text_1=(EditText) findViewById(R.id.text_1);text_2=(EditText) findViewById(R.id.text_2);text_3=(EditText) findViewById(R.id.text_3);text_4=(EditText) findViewById(R.id.text_4);text_5=(EditText) findViewById(R.id.text_5);sumbit=(Button) findViewById(R.id.submit);show=(TextView) findViewById(R.id.show);group=(RadioGroup) findViewById(R.id.sex);box_1=(CheckBox) findViewById(R.id.mesck);box_2=(CheckBox) findViewById(R.id.booking);box_3=(CheckBox) findViewById(R.id.back);box_4=(CheckBox) findViewById(R.id.bool);redio_1=(RadioButton) findViewById(R.id.men);redio_2=(RadioButton) findViewById(R.id.women);//为提交按钮添加事件sumbit.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString b="",r = "";if(redio_1.isChecked()==true){//判断第一个单选按钮是否为选中状态;r=redio_1.getText().toString();}if(redio_2.isChecked()==true){r=redio_2.getText().toString();}if(box_1.isChecked()){//判断是否选择box_1复选按钮b+=box_1.getText().toString();}if(box_2.isChecked()){b+=box_2.getText().toString();}if(box_3.isChecked()){b+=box_3.getText().toString();}if(box_4.isChecked()){b+=box_4.getText().toString();}//group.getCheckedRadioButtonId();show.setText("用户名:"+text_1.getText().toString()+"\n年龄:"+text_3.getText().toString()+"\n性别:"+    r
+"\n日期:"+text_4.getText().toString()+"\n手机号:"+text_5.getText().toString()+"爱好:"+b);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}
  相关解决方案