前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android UI学习之RadioButton和RadioGroup

Android UI学习之RadioButton和RadioGroup

作者头像
DragonKingZhu
发布2022-05-08 15:51:10
8640
发布2022-05-08 15:51:10
举报
文章被收录于专栏:Linux内核深入分析

首先说一下什么是RadioButton, 什么是RadioGroup

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

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

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

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

RadioButton举例说明:

代码语言:javascript
复制
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举例说明:

代码语言:javascript
复制
		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>:当选中时先不生效, 当最后有一个确定按钮点击后才生效。比较网站注册帐号等

好, 今天的就到这里。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档