从零开始学android:Android中的基本控件(上)
本章内容较多,下面只贴代码,大家只需要贴到自己eclipse里就知道作用^^!
Android中的View组件包含了几乎所有的图形显示组件,像之前所使用到的TextView和Button实际上都是View类的子类。
TextView组件的主要功能是用于显示文本,实际上这种控件主要就是提供了一个标签的显示操作,此类定义如下:
java.lang.Object
↳android.view.View
↳android.widget.TextView
样式表文件:res/values/styles.xml
按钮在人机交互截面上使用的是最多的,当提示用户进行某些选择的时候,就可以通过按钮的操作来接收用户的选择。在Android使用“
文本显示组件(TextView)的功能只是显示一些基础的文字信息,而如果用户要想定义可以输入的文本组件以达到很好的人机交互操作,则只能使用编辑框:EditText完成,此类的定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.EditText
单选钮在开发中提供了一种多选一的操作模式,也是经常见到的一种组件,例如:在选择文件编码的时候只能从多种编码中选择一种,或者是选择性别的时候只能从“男”或“女”之中选择一个,而在Android中可以使用RadioGroup来定义单选钮组件,此类的定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.LinearLayout
↳ android.widget.RadioGroup
RadioGroup提供的只是一个单选钮的容器,只有在此容器之中配置多个按钮组件之后才可以使用,而要想设置单选钮的内容,则需要使用RadioButton类,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.RadioButton
CheckBox的主要功能是完成复选框的操作,在用户输入信息的时候,可以一次性选择多个内容,例如:用户在选择个人兴趣爱好的时候一定会存在多个,则此时就直接使用CheckBox即可完成功能。
在Android中如果要想定义复选框,可以使用android.widget.CheckBox类,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.CheckBox
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;
@Override
protected 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");
}
@Override
public 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.widget.Spinner类实现,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView
↳ android.widget.AbsSpinner
↳ android.widget.Spinner
在Android中,可以直接在main.xml文件中定义“
创建资源文件:values/city_data.xml
- 北京
- 上海
- 南京
创建布局文件:
首先创建资源文件:values/color_data.xml
- 红色
- 绿色
- 蓝色
再创建布局文件:
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;
@Override
protected 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);
}
@Override
public 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组件的主要功能是为图片展示提供一个容器,android.widget.ImageView类的定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.ImageView
与按钮组件(Button)类似,在Android中又提供了一个图片按钮,可以直接使用ImageButton定义,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.widget.ImageView
↳ android.widget.ImageButton
在Android中使用TimePicker(时间选择器),可以进行时间的快速调整,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ android.widget.TimePicker
与时间选择器对应的还有一个日期选择器(DatePicker),可以完成年、月、日的设置,此类定义如下:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.FrameLayout
↳ android.widget.DatePicker
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;
@Override
protected 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);
}
@Override
public 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;
}
}