您的位置:首页 > 产品设计 > UI/UE

Android UI学习之RadioButton和RadioGroup

2015-07-16 13:10 561 查看
首先说一下什么是RadioButton, 什么是RadioGroup

RadioButton(单选按钮)顾名思义就是一组RadioButton只能选中其中一个。 通常RadioButton和RadioGroup是一起使用的。

如果RadioButton和另外的一个RadioButton不再同一组的话,那么这两个RadioButton都是可以同时被选中的。

接着说一下RadioButton的事件。 因为RadioButton是继承与Button类的。所以上节说的Button的事件,RadioButton也是有的。

而RadioButton的特殊之处就是可以选中的功能,所以RadioButton的事件就是OnCheckedChange(也就是选中或者取消选中改变的事件)

RadioButton举例说明:

public class RadioButtonActivity extends Activity {

private static RadioButton radioButton1;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radiobutton);

radioButton1 =(RadioButton)findViewById(R.id.radioButton1);
radioButton1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
//Toast.makeText(RadioButtonActivity.this, ""+arg1+"选中", 0).show();
System.out.println(""+arg1+"选中");
  }
});

radioButton1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//Toast.makeText(RadioButtonActivity.this, "按下", 0).show();
System.out.println("按下");
 }
});

}
}
布局文件就不列出, 其中就有一个RadioButton和一个Button按钮(后面会用到)

测试结果为:

1: 当我选中同时抬起后的打印:



这时候模拟器的截图为:



当我再次点击“是”的时候, OnCheckedChanged的事件就不会发生了,但是OnClick事件还是会发生的。  因为RadioButton的状态没有发生变化



RadioGroup举例说明:

radioGroup = (RadioGroup)findViewById(R.id.radiogroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// TODO Auto-generated method stub
RadioButton curRadioButton = (RadioButton) findViewById(arg1);
if(lastRadioButton != null)
lastRadioButton.setText("没有选中");
curRadioButton.setText("选中");
lastRadioButton = curRadioButton;
}

});

布局文件也不贴出了。 布局文件也就是一个RadioGroup里面有3个RadioButton而已;
测试结果为下:



默认情况是3个都没有选择,只有一个选中就会显示选中。同时3个之中只能有一个同时被选中。

总结:

1:  RadioButton和RadioGroup一般都是组合使用。

2:RadioButton的setOnCheckedChangeListener和RadioGroup的setOnCheckedChangeListener的事件名字是一样的,但是不是同一个文件。因为他们所属的包名都不一样

import android.widget.RadioGroup.OnCheckedChangeListener;   (Radiogroup的所属包)

import android.widget.CompoundButton.OnCheckedChangeListener; (RadioButton的所属包)

3: RadioButton和RadioGroup一般分2中使用情况:

  <1> : 当选中时立刻生效

  <2>:当选中时先不生效, 当最后有一个确定按钮点击后才生效。比较网站注册帐号等

好, 今天的就到这里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息