-
CheckBox
-
-
版权声明:
本文为博主学习整理原创文章,如有不正之处请多多指教。
未经博主允许不得转载。
- 介绍
-
关键字:一组相关的选项,用户可以选择一个或多个,甚至不选择。
Xml文件中:<CheckBox/>
Java代码中:CheckBox
- 常用属性设置
1)android:text 设置文字
2)android:textColor 设置文字颜色
3)android:textSize 设置文字大小
4)android:checked 设置是否被选中true:选中,false:未选中
- Activity中常用的方法
- getText().toString() 获取文字
- setChecked() 设置选中状态 true:选中,false:未选中
- isChecked() 判断选中状态
有2种实现方式:控件对象绑定监听事件/当前类实现接口
- 绑定匿名监听器
//获取CheckBox实例
CheckBox cb1 = (CheckBox)this.findViewById(R.id.cb1);
//绑定匿名监听器
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
If(arg1) {//判断是否被选中,其中参数arg0:操作的CheckBox,arg1:选中状态
System.out.println(“您选中了:” + arg0.getgetText().toString());
}
}
});
- 当前类实现OnCheckedChangeListener接口
public class LoveMovieActivity extends Activity implements
OnCheckedChangeListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lovemovie);
//获取CheckBox实例
CheckBox cb1 = (CheckBox)this.findViewById(R.id.cb1);
CheckBox cb2 = (CheckBox)this.findViewById(R.id.cb2);
//绑定自身监听类
cb1.setOnCheckedChangeListener(this);
cb2.setOnCheckedChangeListener(this);
}
//实现接口的onCheckedChanged()方法
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (buttonView.getId()) {
case R.id.cb1://根据操作CheckBox的id来判断具体哪个CheckBox
代码块 //操作空间cb1的代码
break;
case R.id.cb2:
代码块 //操作空间cb2的代码
break;
default:
break;
}
}
- RadioButton
-
介绍
一组相互排斥又相关的选项,用户可以选择一个且只能选择一个选项。
Xml中控件:<RadioButton/>
Java代码中:RadioButton
- 常用属性设置
1)android:text 设置文字
3)android:checked 设置是否被选中true:选中,false:未选中
- Activity中RadioButton常用的方法
- getText().toString() 获取文字
- setChecked() 设置选中状态 true:选中,false:未选中
- isChecked() 判断选中状态
- 监听事件OnCheckedChangeListener
- 绑定匿名监听器
- 监听事件OnCheckedChangeListener
//获取RadioGroup实例
RadioGroup group = (RadioGroup)this.findViewById(R.id.radioGroup);
//绑定一个匿名监听器,必须是RadioGroup添加
group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
//arg0:操作的RadioGroup,ag1:操作的RadioButton的id
public void onCheckedChanged(RadioGroup arg0, int arg1) {
//获取选中的RadioButton的id
//int radioButtonId = arg0.getCheckedRadioButtonId();
//通过id找到对应的RadioButton
//RadioButton rb = (RadioButton)findViewById(radioButtonId);
//直接使用ag1:操作的RadioButton的id 也可以
RadioButton rb = (RadioButton)findViewById(arg1);
System.out.println(“您选中了:” + rb.getgetText().toString());}});
- 当前类实现OnCheckedChangeListener接口
public class LoveFruitActivity extends Activity implements OnCheckedChangeListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lovemovie);
//获取RadioButton实例
RadioButton rb1 = (RadioButton)this.findViewById(R.id.rb1);
RadioButton rb2 = (RadioButton)this.findViewById(R.id.rb2);
//绑定自身监听类
rb1.setOnCheckedChangeListener(this);
rb2.setOnCheckedChangeListener(this);
}
//实现接口的onCheckedChanged()方法
public void onCheckedChanged(RadioGroup arg0, int arg1) {
switch (arg0.getCheckedRadioButtonId()) {
case R.id.rb1://根据操作RadioButton的id来判断具体哪个RadioButton
代码块 //操作空间rb1的代码
break;
case R.id.rb2:
代码块 //操作空间rb2的代码
break;
default:
break;
}
}
- RadioGroup介绍
相互排斥又相关的选项设置为一组,使选项相互排斥
- RadioButton和RadioGroup的关系
1)RadioButton表示单个圆形单选框,RadioGroup是可以容纳多个RadioButton的容器
2)每个RadioGroup中的RadioButton同时只能有一个被选中
3)不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中
4)大部分情况下,一个RadioGroup中至少有2个RadioButton
5)大部分情况下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置
-
- Activity中RadioGroup常用的方法
- getCheckedRadioButtonId() 获取RadioGroup中选中RadioButton的id
- 监听事件
- 绑定匿名监听器
- 监听事件
//获取RadioGroup实例
RadioGroup group = (RadioGroup)this.findViewById(R.id.radioGroup);
//绑定一个匿名监听器,必须是RadioGroup添加
group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
//arg0:操作的RadioGroup,ag1:操作的RadioButton的id
public void onCheckedChanged(RadioGroup arg0, int arg1) {
//获取选中的RadioButton的id
//int radioButtonId = arg0.getCheckedRadioButtonId();
//通过id找到对应的RadioButton
//RadioButton rb = (RadioButton)findViewById(radioButtonId);
//直接使用ag1:操作的RadioButton的id 也可以
RadioButton rb = (RadioButton)findViewById(arg1);
System.out.println(“您选中了:” + rb.getgetText().toString());}});
- 当前类实现OnCheckedChangeListener接口
public class LoveFruitActivity extends Activity implements OnCheckedChangeListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lovemovie);
//获取RadioButton实例
RadioButton rb1 = (RadioButton)this.findViewById(R.id.rb1);
RadioButton rb2 = (RadioButton)this.findViewById(R.id.rb2);
//绑定自身监听类
rb1.setOnCheckedChangeListener(this);
rb2.setOnCheckedChangeListener(this);
}
//实现接口的onCheckedChanged()方法
public void onCheckedChanged(RadioGroup arg0, int arg1) {
switch (arg0.getCheckedRadioButtonId()) {
case R.id.rb1://根据操作RadioButton的id来判断具体哪个RadioButton
代码块 //操作空间rb1的代码
break;
case R.id.rb2:
代码块 //操作空间rb2的代码
break;
default:
break;
}
}
-
Fragment介绍
Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。
- 生命周期
Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。官网这张图很好的说明了两者生命周期的关系:
Xml声明
- 创建Fragment使用的XML布局文件,如activity_fragment2.xml
2)创建类(自定义类名),必须继承Fragment
//必须继承Fragment,重写onCreateView()方法,实现onCreateView()方法设置返回值。
public class Fragment2 extends Fragment{
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle b) {
//设置返回iew对象的布局
//参数:1 绑定的布局;2 所属的父控件;
//3 是否绑定触摸事件监听:必须设置,不然切换窗体错误
return inflater.inflate(R.layout.activity_fragment2, container,false);
}
- 使用
动态加载Fragment常用的方法
1)getFragmentManager()
2)beginTransation()
3)replace(containerViewId, fragment, tag)
4)add(containerViewId, fragment, tag)
5)remove(fragment)
6)getActivity()
getFragmentManager().beginTransaction().replace (
//替换已经显示的Fragment
R.id.activity_main_frameLayout, //公共显示的区域,一般使用FrameLayout
fragment1).commit(); //显示的Fragment对象