Android开发之UI控件(1)-CheckBox、DataPicker、RadioGroup、ProgressBar、Spinner
2015-04-15 22:38
681 查看
熟悉了Android组件的Activity以及Intent相关内容,了解了如何创建Intent、使用Intent关联Activity,这里就简单介绍下Android中的UI控件,并简单的使用它们。今天主要介绍Android控件之CheckBox、DataPicker、RadioGroup、ProgressBar和Spinner。
一、准备工作
这里我们希望建立一个控件使用的App,主界面主要采用ListView列表来显示各个不同的控件。所以我们需要在MainActivity里构建这个布局。1、为了使用ListView布局方式,我们要使MainActivity扩展自ListActivity:
扩展完成之后会产生一系列相关与listview的方法:
我们在MainActivity里的onCreate()方法中创建ArrayAdapter<T>变量,用于向ListView里面添加列表项;
这里的T是自定义类型,为了方便添加我们自定义的列表项,我们自定义了一个CustomCellData.java类,然后在ArrayAdpter中以其为类型来生成adapter:
private ArrayAdapter<CustomCellData> adapter;
接着,我们在OnCreate()方法的开头初始化该变量:
adapter = new ArrayAdapter<CustomCellData>(this,android.R.layout.simple_list_item1);在列表框中装载adapter:
setListAdapter(adapter);接下来,我们就可以在ListView中利用adapter.Add()方法为其添加列表项。
再来解释下之前自定义的CustomCellData类,该类的主要目的是为了装载我们新建的控件,并将其进行组织之后以对象的方式添加给Adapter。
看一下该类的组织:
import android.content.Context; import android.content.Intent; public class CustomCellData { private Context context = null; private String decsription = ""; private Intent intent = null; public CustomCellData(Context _MainContext,String _desc,Intent _relatedIntent){ this.context = _MainContext;//主context; this.decsription = _desc; this.intent = _relatedIntent;//得到相关的intent activity; } //生成相关变量的Get方法; public Context getContext() { return this.context; } public String getDecsription() { return this.decsription; } public Intent getIntent() { return this.intent; } //重载toString方法; @Override public String toString() { // TODO Auto-generated method stub return getDecsription(); } //重载startActivity方法; public void startActivity() { getContext().startActivity(getIntent()); } }当我们新建了一个控件的Activity之后,就可以利用intent关联到Activity。由于在点击ListItem的时候需要启动其Activity,所以需要重载startActivity方法。从扩展ListActivity时生成的onListItemClick方法里也看以看出需要重载startActivity():
在重载startActivity中需要得到关联的Intent,所以自定义了一个getIntent和getContext方法来启动Activity,又由于需要context和intent,所以我们的CustomCellData构造函数里需要这2个参数来建立对象,而实参的获得正好可以从MainActivity与建立的控件类来得到。
分析完CustomCellData这个类之后,我们就可以开始控件的使用了。
二、CheckBox
1、新建一个类AtyUICheckBox,让其扩展自Activity。并在Manifest文件中注册该类,最后在R.layout里设置布局。如下图:2、在类中编写代码。定义控件变量,并重置onCreate方法,在onCreate方法里注意“提交”Button的setOnClickListener事件的响应。当某一个按钮被选中时,获取isChecked消息,可以弹出一个消息提示框AlertDialog。
new AlertDialog.Builder(Aty.this).setTitle().setMessage().setPositiveButton().show();
3、最后可以啊MainActivity中添加该控件的列表项于adapter中:
三、DataPicker
datapick是用来选择日期和时间的。这里我们设计一个Activity,布局一个textview控件,通过设置时间,把时间显示到textview上。1、新建一个类AtyUIDataPicker,让其扩展自Activity。并在Manifest文件中注册该类,最后在R.layout中设置布局:
按下设置日期按钮,弹出日期的设置框,通过设置确定,将日期输出在年、月、日三个textView中。
2、在类中编写代码,定义私有控件变量,并通过setContentView(R.layout.aty_ui_datapicker)与findViewById(R.id.ID)得到关联的控件;
通过button的onClick消息,弹出DataPickerDialog,在其参数中输入调用该对话框的类,并且指定监听器DataPickerDialog.onDataSetListener专门用来监听日期选择的变化:
3、最后在MainActivity中设置adapter:
四、ProgressBar
progressbar控件的使用如上述设置,配置好Activity、layout之后就可以在MainActivity中使用该对象。Progressbar使用时注意设置setMax和setProgress方法。五、RadioGroup
radiogroup控件的使用跟checkbox方法十分类似,如果需要弹出提示框,请在响应isChecked方法里设置new AlertDialog即可。六、Spinner
Spinner控件就是一个下拉列表框控件。既然涉及到列表,我们可以使用ArrayAdapter<T>的变量来作为列表项。1、新建AtyUISpinner类,使其扩展自Activity,在Manifest中注册,并设置好其布局layout,在其中添加一个spinner控件即可。
2、在目标类中编写代码,获取spinner控件,并重载onCreate方法,setContentView显示布局。获取ArrayAdapter变量:
然后利用adapter的Add方法添加列表项,最后将adapter通过控件的setAdapter方法绑定到spinner控件上,就完成了控件与列表项的绑定。
3、最后在MainActivity的主列表中添加来自该控件的列表项:
以上就完成了几个简单控件的使用,希望大家尝试后提出意见,谢谢。
相关文章推荐
- 【Android开发学习26】界面控件之选项组件(RadioGroup和CheckBox)
- Android开发--控件之RadioGroup、RadioButton、CheckBox、Toast
- android开发学习笔记——稍复杂控件 RadioGroup,CheckBox,Toast
- (转)android常用控件(二) RadioGroup RadioButton CheckBox Toast的使用
- Android开发笔记:基础控件之RadioGroup用法
- Android开发之四(五):常用控件之单项选择(RadioGroup和RadioButton)
- Android:UI控件RatingBar、SeekBar、ProgressBar、RadioGroup、RadioButton、CheckBox、TextView
- Android开发之道(9)RadioBox、CheckBox和Spinner
- Android开发视频教程之十二(RadioGroup、RadioButton、CheckBox和Toast的使用)
- Android开发之RadioGroup与RadioButton控件使用
- Android学习-常见的UI控件 RadioGroup和RadioButton
- 【Android 开发】:UI控件之 Spinner 下拉列表控件的使用
- Android控件之CheckBox、RadioGroup、RadioButton
- android应用开发--------------看RadioGroup源码,写类似单选选项卡的集成控件(如底部导航,tab等等)
- Android控件RadioButton&RadioGroup&CheckBox
- 【幻化万千戏红尘】qianfeng-Android-Day03-RadioButton及RadioGroup的用法、CheckBox、ProgressBar基础学习:
- [android]控件CheckBox/RadioGroup/RadioButton的常用属性---单复选控件
- 【Android 开发】:UI控件之 ProgressBar 进度条的使用
- Android练习之EditText、ImageButton、CheckBox、RadioGroup、ImageView、Spinner
- android应用开发--------------看RadioGroup源代码,写相似单选选项卡的集成控件(如底部导航,tab等等)