一、RadioButton
1、一组RadioButton被一个RadioGroup所包围
<RadioGroup android:id="@+id/gender" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/female" /> <RadioButton android:id="@+id/male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/male" /> </RadioGroup>
2、RadioButton的事件监听器是绑定在RadioGroup上面的
// 为RadioGroup绑定监听器而不是给RadioButton // 事件监听器onCheckedChangeListener是RadioGroup的一个内部类 // 这里使用匿名内部类 genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { // 参数checkedId代表事件源radioButton的id,通过这个比较来判断事件源 @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == R.id.female) { System.out.println("female"); // Toast控件,第一个参数为一个context,在此即当前activity对象 // 第二个参数为要显示的文字 // 第三个参数为显示的时间长短,有Toast.LENGTH_SHORT和Toast.LENGTH_LONG两种 Toast.makeText(RadioCheckBoxToast.this, "female", Toast.LENGTH_SHORT).show(); } else if (checkedId == R.id.male) { System.out.println("male"); Toast.makeText(RadioCheckBoxToast.this, "male", Toast.LENGTH_SHORT).show(); } } });
二、CheckBox
不同于,各个CheckBox之间是相互独立的
<CheckBox android:id="@+id/running" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/running" /> <CheckBox android:id="@+id/reading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/reading" /> <CheckBox android:id="@+id/swimming" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/swimming" />
2、CheckBox的事件监听器是绑定在各个控件自己身上的
// 为CheckBox绑定监听器 // CheckBox是extends CompoundButton,其事件监听器也是在CompoundButton // 监听器的名字也是onCheckedChangeListener // RadioButton也是extends CompoundButton,但是在上面由于事件监听器绑定的是RadioGroup而不是 // RadioButton,所以是用RadioGroup里面的listener runningCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (true == isChecked) { System.out.println(buttonView.getText() + "被选择"); } else { System.out.println(buttonView.getText() + "取消选择"); } } }); readingCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (true == isChecked) { System.out.println(buttonView.getText() + "被选择"); } else { System.out.println(buttonView.getText() + "取消选择"); } } }); swmmingCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (true == isChecked) { System.out.println(buttonView.getText() + "被选择"); } else { System.out.println(buttonView.getText() + "取消选择"); } } });
三、Toast,该控件不用在布局文件中定义,直接在java源文件中
// Toast控件,第一个参数为一个context,在此即当前activity对象 // 第二个参数为要显示的文字 // 第三个参数为显示的时间长短,有Toast.LENGTH_SHORT和Toast.LENGTH_LONG两种 Toast.makeText(RadioCheckBoxToast.this, "female", Toast.LENGTH_SHORT).show();