电子科技大学信息与软件工程学院
标 准 实 验 报 告
(实验)课程名称 Android
系统结构与应用编程
电子科技大学教务处制表
电 子 科 技 大 学
实 验 报 告
学生姓名: 学 号: 指导教师:
实验地点: 实验时间:
一、实验室名称:协同自主实验室
二、实验项目名称: Android UI 控件的使用
三、实验学时:2 学时
四、实验原理:
UI,即 User Interface——用户界面,它是系统和用户之间进行交互和信
息交换的媒介,它的主要作用是实现信息内部形式与人类可接受形式之间的转
换。用户界面设计包括了对软件的人机交互、操作逻辑、界面美观的整体设计。
好的 UI 不仅仅可以让软件变得个性有品味,更重要的是可以让软件的操作变得
舒适、简单而自由,并且充分地体现软件的定位和特点。
UI 对于应用程序的重要性,好比衣着之于人的重要性,对人来说,好的衣
着不仅仅可以使得自己大方得体有精神,还可以满足功能性的需求例如保暖,
透气甚至是口袋易用性。从广义上来说,生活中所接触到的各种产品都涉及到
了 UI 设计,例如汽车,冰箱,空调等,一个好的 UI 设计都会体现出这样的共
同点,他们方便使用,易于上手,提示信息清晰明了,很少有歧义性的操作出
现。
五、实验目的:
UI 控件就是为用户界面提供服务的视图对象。Android 提供了一系列功能
强大且形式丰富多彩的控件,开发人员掌握各个控件的使用方法能快速的建立
起应用程序的 UI。
六、实验内容:
掌 握 Button ( 按 钮 ) 、 TextView ( 文 本 ) 、 EditText ( 文 本 编 辑 框 )、
ListView ( 列 表 ) 、 Spinner ( 下 拉 列 表 ) 、 缩 放 按 钮
(ZoomButton&ZoomControl)、进度条(ProgressBar)等 Android 提供的 UI 控
件。
七、实验器材(设备、元器件):
ADT、SDK、eclipse
八、实验步骤:
1.文本框(TextView)、按钮( Button)和 EditText(可编辑文本)
TextView 就包含了一段提示文字,作为另一个控件的搭配说明,Button 则
是相应点击事件,可以将 Button 理解为可以点击的 TextView,而 EditText 则用
于接受用户的输入。
程序初始化时给 TextView 设置默认值,在按钮被点击后会出现的响应,使
得文本框内容发生改变(改变后的内容将包含在 EditText 中输入的信息),实
现该功能的代码如下:
public class WidgetDemo extends Activity {
Button bt;
TextView tv;
EditText et;
OnClickListener ocl = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
ocl = new OnClickListener(){
public void onClick(View v){
setTitle("界面发生了改变");
CharSequence tv_before = tv.getText();//获取文本框中的内容
CharSequence et_text = et.getText();//获取编辑框中的内容
tv.setText("按钮点击前, 内容是:"+ tv_before +"\n" + "点击
按钮后,文本框内容改变了!" + "\n" + "编辑框中的内容是:" + et_text);
et.setText("");//响应后,清空编辑框中输入的内容
}
};
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView)findViewById(R.id.textView1);
tv.setText("这是不可直接输入内容的文本框");
et = (EditText)findViewById(R.id.editText1);
bt = (Button)findViewById(R.id.button1);
bt.setText("提交");
bt.setOnClickListener(ocl);
}
}
2.下拉列表(Spinner)
程序初始化时,为下拉列表定义一个适配器, 为下拉列表赋值, 列表选项
有"北京","上海","成都","南京","香港"。下拉列表从适配器中读取值,调用下拉
列表赋值、响应函数。实现该功能的代码如下:
public class SpinnerDemo extends Activity {
TextView tv1;
TextView tv2;
Spinner sp;
OnClickListener ocl = null;
ArrayAdapter<CharSequence> adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
//class
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView)findViewById(R.id.textView1);
tv2 = (TextView)findViewById(R.id.textView2);
sp = (Spinner)findViewById(R.id.spinner1);
sp.setPrompt("选择项");//为列表项设置标题
spinner_set();//调用下拉列表赋值、响应函数
}
private void spinner_set(){
//将下拉列表的值先传给适配器
adapter = ArrayAdapter.createFromResource(this,
R.array.cities, android.R.layout.simple_spinner_item);//最主要的区别,
如果注释掉这一句,就打开其他的注释
//适配器获得值
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropd
own_item);
//下拉列表从适配器中读取值
sp.setAdapter(adapter);
//下拉列表选定值后响应
sp.setOnItemSelectedListener(new
AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg2 != 0){
tv2.setText("您选择的是:" + adapter.getItem(arg2));
}
else{
tv2.setText("您还没有选择!");
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
tv2.setText("您还没有选择!");
}
});
}
}
3.列表(ListView)
ArrayAdapter,可称为数组适配器,是 ListView 中最简单的一种适配器,
它将一个数组和 ListView 之间建立连接,可以将数组里定义的内容一一对应的
显示在 ListView 中,每一项一般只有一个 TextView,即一行只能显示一个数组
Item 调用 toString()方法生成的一行字符串。具体实现代码如下:
public class ArrayAdapterDemo extends Activity {