复选框:
默认情况下,单选框按钮显示为一个方块图标,并且在该图标旁边放置一些说明性文字。与单选按钮不同的是,复选框可以进行多选设置,每一个复选框都提供"选中"和"不选中"两种状态。
在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.csdn.net/acmman/article/details/44776629
时间: 2024-10-29 05:22:42