单选按钮(RadioButton)和复选框(CheckBox)的介绍与应用
Android中的RadioButton和CheckBox都继承了Button按钮,因此它们都可以直接使用Button支持的各种属性和方法,但与普通按钮不同的是它们多了一个可选中的功能,RadioButton和CheckBox都可额外指定一个android:checked属性,该属性用于指定RadioButton和CheckBox初始时是否被选中。
RadioButton和CheckBox的不同之处在于,RadioButton只能选中其中一个,因此RadioButton通常要与RadioGroup一起使用,用于定义一组单选按钮。
RadioButton和CheckBox的用法
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TableRow > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="性别" android:textSize="11pt"/> <!-- 定义一 组单选按钮 --> <RadioGroup android:id="@+id/radioGroup" android:orientation="vertical" android:layout_gravity="center_horizontal"> <!-- 定义两个单选按钮 --> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女"/> </RadioGroup> </TableRow> <TableRow > <TextView android:id="@+id/tvSex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="您的性別是:" android:textSize="11pt"/> </TableRow> <TableRow > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="喜欢的颜色" android:textSize="11pt"/> <!-- 定义一个垂直的线性布局 --> <LinearLayout android:layout_gravity="center_horizontal" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- 定义三个复选框 --> <CheckBox android:id="@+id/red" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="红色" android:checked="true"/> <CheckBox android:id="@+id/blue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="蓝色"/> <CheckBox android:id="@+id/green" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="绿色"/> </LinearLayout> </TableRow> <TableRow > <Button android:id="@+id/get_view_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取CheckBox的值" /> </TableRow> </TableLayout>
上面布局中定义了一组单选按钮和一组复选框
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; public class RadioButtonActivity extends Activity { TextView tv = null;// 根据不同选项所要变更的文本控件 CheckBox plain_cb; CheckBox serif_cb; CheckBox italic_cb; CheckBox bold_cb; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.radiobutton); setTitle("RadioButtonActivity"); setContentView(R.layout.radiobutton); find_and_modify_text_view(); // 根据ID找到该文本控件 tv = (TextView) this.findViewById(R.id.tvSex); // 根据ID找到RadioGroup实例 RadioGroup group = (RadioGroup) this.findViewById(R.id.radioGroup); // 绑定一个匿名监听器 group.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup arg0, int arg1) { // TODO Auto-generated method stub // 获取变更后的选中项的ID int radioButtonId = arg0.getCheckedRadioButtonId(); // 根据ID获取RadioButton的实例 RadioButton rb = (RadioButton) RadioButtonActivity.this .findViewById(radioButtonId); // 更新文本内容,以符合选中项 tv.setText("您的性别是:" + rb.getText()); } }); } public void find_and_modify_text_view() { plain_cb = (CheckBox) findViewById(R.id.red); serif_cb = (CheckBox) findViewById(R.id.blue); italic_cb = (CheckBox) findViewById(R.id.green); Button get_view_button = (Button) findViewById(R.id.get_view_button); get_view_button.setOnClickListener(get_view_button_listener); } public Button.OnClickListener get_view_button_listener = new Button.OnClickListener() { public void onClick(View v) { String r = ""; if (plain_cb.isChecked()) { r = r + "," + plain_cb.getText(); } if (serif_cb.isChecked()) { r = r + "," + serif_cb.getText(); } if (italic_cb.isChecked()) { r = r + "," + italic_cb.getText(); } setTitle("Checked: " + r); } }; }
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28