从零开始学android:Android中的基本控件(上)
从零开始学android:Android中的基本控件(上)
本章内容较多,下面只贴代码,大家只需要贴到自己eclipse里就知道作用^^!
View组件简介
Android中的View组件包含了几乎所有的图形显示组件,像之前所使用到的TextView和Button实际上都是View类的子类。
部分图形组件
View组件常用属性及对应方法
TextView
TextView组件的主要功能是用于显示文本,实际上这种控件主要就是提供了一个标签的显示操作,此类定义如下:
java.lang.Object
↳android.view.View
↳android.widget.TextView
组件的常用属性及对应方法
配置不使用样式表例子:
使用样式表:
样式表文件:res/values/styles.xml
布局文件:
按钮组件:Button
按钮在人机交互截面上使用的是最多的,当提示用户进行某些选择的时候,就可以通过按钮的操作来接收用户的选择。在Android使用“
例子:
效果:
编辑框:EditText
文本显示组件(TextView)的功能只是显示一些基础的文字信息,而如果用户要想定义可以输入的文本组件以达到很好的人机交互操作,则只能使用编辑框:EditText完成,此类的定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.EditText
例子:
单选钮:RadioGroup
单选钮在开发中提供了一种多选一的操作模式,也是经常见到的一种组件,例如:在选择文件编码的时候只能从多种编码中选择一种,或者是选择性别的时候只能从“男”或“女”之中选择一个,而在Android中可以使用RadioGroup来定义单选钮组件,此类的定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.LinearLayout
↳ android.widget.RadioGroup
RadioGroup类的常用操作方法
RadioButton类
RadioGroup提供的只是一个单选钮的容器,只有在此容器之中配置多个按钮组件之后才可以使用,而要想设置单选钮的内容,则需要使用RadioButton类,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.RadioButton
RadioGroup与RadioButton联合举例:
复选框:CheckBox
CheckBox的主要功能是完成复选框的操作,在用户输入信息的时候,可以一次性选择多个内容,例如:用户在选择个人兴趣爱好的时候一定会存在多个,则此时就直接使用CheckBox即可完成功能。
在Android中如果要想定义复选框,可以使用android.widget.CheckBox类,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.CheckBox
CheckBox类的常用方法
定义复选框 —— main.xml
通过程序操作复选框组件
package com.richard.radiogroup;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.CheckBox;public class MainActivity extends Activity {private CheckBox box = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);this.box = (CheckBox) super.findViewById(R.id.url3);box.setChecked(true);box.setText("www.iokokok.com");}@Overridepublic 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;}}
下拉列表框Spinner
下拉列表框也是一种常见的图形组件,它可以为用户提供列表的选则方式,与复选框或单选钮相比还可以节省手机的屏幕空间,在Android中可以使用android.widget.Spinner类实现,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView
↳ android.widget.AbsSpinner
↳ android.widget.Spinner
Spinner类的常用方法
配置列表项
在Android中,可以直接在main.xml文件中定义“
方式一:直接通过资源文件配置;
创建资源文件:values/city_data.xml
- 北京
- 上海
- 南京
创建布局文件:
方式二:通过android.widget.ArrayAdapter类读取资源文件或者是指定具体设置的数据;
首先创建资源文件:values/color_data.xml
- 红色
- 绿色
- 蓝色
再创建布局文件:
编写Activity程序
package com.richard.spinner;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends Activity {private Spinner spiColor = null;private ArrayAdapter adapterColor = null;private Spinner spiEdu = null;private ArrayAdapter adapterEdu = null;private List dataEdu = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.spiColor = (Spinner) super.findViewById(R.id.color_city);this.spiColor.setPrompt("请选择您喜欢的颜色");this.adapterColor = ArrayAdapter.createFromResource(this, R.array.color_labels, android.R.layout.select_dialog_item);this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//设置列表显示风格this.spiColor.setAdapter(this.adapterColor);this.dataEdu = new ArrayList();// 实例化List集合this.dataEdu.add("大学");this.dataEdu.add("研究生");this.dataEdu.add("高中");this.spiEdu = (Spinner) super.findViewById(R.id.edu_data);this.spiEdu.setPrompt("请选择您喜欢的学历");this.adapterEdu = new ArrayAdapter(this, android.R.layout.simple_spinner_item, this.dataEdu);this.adapterEdu.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);this.spiEdu.setAdapter(this.adapterEdu);}@Overridepublic 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;}}
ImageView组件
ImageView组件的主要功能是为图片展示提供一个容器,android.widget.ImageView类的定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.ImageView
ImageView定义的属性及操作方法
编写main.xml文件,定义ImageView组件
这里讲一下src=@drawable/ic_launcher,这里的ic_launcher其实是res/drawable-hdpi/ic_launcher.png,大家只要知道在这里就行了。
图片按钮:ImageButton
与按钮组件(Button)类似,在Android中又提供了一个图片按钮,可以直接使用ImageButton定义,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.ImageView
↳ android.widget.ImageButton
在main.xml文件中定义ImageButton组件
时间选择器:TimePicker
在Android中使用TimePicker(时间选择器),可以进行时间的快速调整,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ android.widget.TimePicker
TimePicker的常用方法
日期选择器:DatePicker
与时间选择器对应的还有一个日期选择器(DatePicker),可以完成年、月、日的设置,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ android.widget.DatePicker
DatePicker类的常用方法
TimePicker和DatePicker合并展示的例子:
编写Activity程序,将时间变为24小时制 ,设置一个日期 :
package com.richard.timepicker;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.DatePicker;import android.widget.TimePicker;public class MainActivity extends Activity {private TimePicker mytp = null;private DatePicker mydp = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.mytp = (TimePicker) super.findViewById(R.id.tp2);this.mytp.setIs24HourView(true);this.mytp.setCurrentHour(18);this.mytp.setCurrentMinute(30);this.mydp = (DatePicker) super.findViewById(R.id.dp2);this.mydp.updateDate(1998,7,27);}@Overridepublic 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;}}
其实挺简单的,大家只要敲 一遍就行了。
更多相关文章
- Android系列教程之Android项目的目录结构
- Android中的资源与国际化
- spring for android
- Android中的资源与国际化!
- 20、从头学Android之Android的数据存储--File
- 在android market发布个人免费应用的步骤
- 教你用电脑从 Google Play 下载 Android(安卓)程序 apk 文件
- Android基于腾讯X5内核的WebView(超级浏览器)
- NPM 和webpack 的基础使用