【Android开发】基本组件-复选框

本文详细介绍了Android中复选框(CheckBox)的使用方法,包括如何在XML布局文件中添加复选框,以及如何在Java代码中实现复选框的状态改变监听和获取选中项的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复选框:
默认情况下,单选框按钮显示为一个方块图标,并且在该图标旁边放置一些说明性文字。与单选按钮不同的是,复选框可以进行多选设置,每一个复选框都提供"选中"和"不选中"两种状态。
在Android中,复选框使用CheckBox表示,CheckBox又是Button的子类,所以单选按钮可以直接使用Button支持的各种属性。

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

推荐使用XML配置,基本语法如下:
<CheckBox
    android:text="显示文本"
    android:id="@+id/ID号"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</CheckBox>

实例:
界面:
res/layout/main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:orientation="horizontal"
	android:background="#FFFFFF">
	<TextView android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="爱好:"
	    android:width="100px"
	    android:height="50px"
	    android:gravity="right"/>
	<CheckBox
    	android:text="体育"
    	android:id="@+id/like1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"/>
	<CheckBox
   	 	android:text="音乐"
    	android:id="@+id/like2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"/>
	<CheckBox
    	android:text="美术"
    	android:id="@+id/like3"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"/>
	<Button android:text="提交"
	    android:id="@+id/button1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"/>
</LinearLayout>

界面如图:



在主活动中创建并实例化一个OnCheckedChangeListener对象,在实例化该对象时,重写onCheckedChanged()方法,当复选框被选中时,输出一条日志信息,显示被选中的复选框,具体代码如下:
private OnCheckedChangeListener checkBox_listener;
checkBox_listener=new OnCheckedChangeListener() {
			
	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		if(isChecked){
			Log.i("复选框", "选中了["+buttonView.getText().toString()+"]");
		}
				
	}
};

接下来点击提交按钮后,我们要获取复选框,并显示被选中的数据,完整代码如下:
package com.example.test;


import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Toast;


public class MainActivity extends Activity {
	private OnCheckedChangeListener checkBox_listener;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		checkBox_listener=new OnCheckedChangeListener() {
			
	     @Override
             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
			if(isChecked){
		              Log.i("复选框", "选中了["+buttonView.getText().toString()+"]");
			}
				
		}
	};
		
		final CheckBox like1=(CheckBox)findViewById(R.id.like1);
		final CheckBox like2=(CheckBox)findViewById(R.id.like2);
		final CheckBox like3=(CheckBox)findViewById(R.id.like3);
		like1.setOnCheckedChangeListener(checkBox_listener);
		like2.setOnCheckedChangeListener(checkBox_listener);
		like3.setOnCheckedChangeListener(checkBox_listener);
		
		//为"提交"按钮添加单击事件监听器
		Button button=(Button)findViewById(R.id.button1);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				String like="";//保存选中的值
				if(like1.isChecked()){
			            like+=like1.getText().toString()+"";//当第一个复选框被选中
				}
				if(like2.isChecked()){
			            like+=like2.getText().toString()+"";//当第二个复选框被选中
				}
				if(like3.isChecked()){
				    like+=like3.getText().toString()+"";//当第三个复选框被选中
				}
                                //显示被选中的复选框
			   Toast.makeText(MainActivity.this, like, Toast.LENGTH_SHORT).show();
			}
		});
	}
}

效果如图



转载请注明出处:http://blog.youkuaiyun.com/acmman/article/details/44776629

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光仔December

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值