RadioButton 即单选按钮,最多见的地方就是在用户注册的时候,选择 “男” 或者 “女”,RadioButton的特点,多个只能同时选择一个,先 看看 今天的内容
- 单选按钮(RadioButton)的基本概念
- RadioGroup 和 RadioButton
- OnClickListener 与 OnCheckedChangeListener 监听器
- 什么是单选按钮
这个就是单选按钮,是不是非常眼熟啊!选中的单选按钮前面的圆圈是蓝色的,这里不得不提一下上一篇讲的复选框(CheckBox)真是一对好基友啊;:-)
单选按钮(RadioButton) 和 复选框 (CheckBox)不仅仅是 样子上的区别,一组单选按钮只能选择一个,而复选框能可以选择多个,RadioButton 涉及到 组的概念,而 CheckBox没这个概念。
RadioButton的使用方法是在 布局文件中声明RadioGroup,java代码中获取该对象,然后对该对象进行操作。
2. RadioGroup 是一组的意思,即可以多个RadioButton 包含在一个RadioGroup里面
<RadioGroup android:id="@+id/radiogroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" /> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" /> </RadioGroup>
这就是一组RadioButton,一个RadioGroup里面 有2个RadioButton。
3. 下面我们来看看OnCheckedChangeListener 监听器,和CheckBox类似,当选中的状态发生改变是触发该监听
布局文件和上面的一样,下面看 Java代码
package com.zhoucj.messagedemo; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.Toast; public class MainActivity extends Activity { RadioGroup radioGroup; RadioButton radio1; RadioButton radio2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); radioGroup=(RadioGroup)findViewById(R.id.radiogroup1); radio1=(RadioButton)findViewById(R.id.radio1); radio2=(RadioButton)findViewById(R.id.radio2); radioGroup.setOnCheckedChangeListener(new radioOnCheckedChangeListener()); } class radioOnCheckedChangeListener implements OnCheckedChangeListener { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if(checkedId==radio1.getId()) { showToast("男"); }else if(checkedId==radio2.getId()) { showToast("女"); } } } public void showToast(String msg) { Toast.makeText(this, msg, 2000).show(); } @Override public 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; } }
运行结果 如下:
RadioGroup的特点 就是选中一个时,另一个会取消选择,也就是说,在RadioGroup里面,一次只能选中一个。
对于单选按钮来说,掌握RadioGroup 和 监听器是有必要的。
好了,今天就写到这里了,正好过节了,等下还要去看龙舟比赛。