8001511072夏先国实验五第六章Android事件处理.docx
《8001511072夏先国实验五第六章Android事件处理.docx》由会员分享,可在线阅读,更多相关《8001511072夏先国实验五第六章Android事件处理.docx(27页珍藏版)》请在冰豆网上搜索。
![8001511072夏先国实验五第六章Android事件处理.docx](https://file1.bdocx.com/fileroot1/2023-2/3/f0f7ead8-ec67-4597-b2b9-0519aa5b4c25/f0f7ead8-ec67-4597-b2b9-0519aa5b4c251.gif)
8001511072夏先国实验五第六章Android事件处理
南昌大学实验报告
学生姓名:
夏先国学号8001511072专业班级:
软件技术112班
实验类型:
□验证□综合
设计□创新实验日期:
2013-05-10实验成绩:
一、实验项目名称
Android事件处理器
二、实验目的
掌握常用事件
三、实验要求
做如下实验
1.单击事件
2.单选按钮与OnCheckedListenner
3.下拉列表框与OnItemSelectedListenner
4.监听时间与日期的变化
5.焦点事件
6.长按事件
7.键盘事件
8.触摸事件
四、主要仪器设备及耗材
PC机一台,JDK,eclispce,sdk
五、实验步骤及处理结果
1.单击事件(四则计算器)
main.xml代码如下:
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
xmlns:
android="
android:
orientation="horizontal"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content">
android:
id="@+id/myeda"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="输入第一个数字..."/>
android:
id="@+id/note"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
android:
id="@+id/myedb"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="输入第二个数字..."/>
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="="/>
android:
id="@+id/mytext"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
text="计算结果..."/>
xmlns:
android="
android:
orientation="horizontal"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
实验效果截图:
2.单选按钮与OnCheckedListenner
main.xml代码如下:
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/show"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
text="您的性别是:
"
android:
textSize="20px"/>
android:
id="@+id/sex"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
orientation="vertical"
android:
checkedButton="@+id/male">
android:
id="@+id/male"
android:
text="男"/>
android:
id="@+id/female"
android:
text="女"/>
实验效果截图:
3.下拉列表框与OnItemSelectedListenner
main.xml代码如下:
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
orientation="horizontal"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/city"
android:
prompt="@string/city_prompt"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
entries="@array/city_lables"/>
android:
id="@+id/area"
android:
prompt="@string/city_prompt"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
Activity程序代码
packageorg.lxh.demo;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemSelectedListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.Spinner;
publicclassMySpinnerListenerDemoextendsActivity{
privateSpinnercity=null;//下拉列表框内容
privateSpinnerarea=null;//二级列表
privateString[][]areaData=newString[][]{
{"东城","西城","朝阳","大兴","平谷"},//针对于一级的子信息
{"黄浦","杨浦","闵行"},//针对于二级的子信息
{"广州"}//针对于三级的子信息
};//子菜单项
privateArrayAdapteradapterArea=null;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.city=(Spinner)super.findViewById(R.id.city);//取得下拉列表框
this.area=(Spinner)super.findViewById(R.id.area);//取得下拉列表框
this.city.setOnItemSelectedListener(newOnItemSelectedListenerImpl());
}
privateclassOnItemSelectedListenerImplimplementsOnItemSelectedListener{
publicvoidonItemSelected(AdapterView
>parent,Viewview,
intposition,longid){//表示选项改变的时候触发
MySpinnerListenerDemo.this.adapterArea=newArrayAdapter(
MySpinnerListenerDemo.this,
android.R.layout.simple_spinner_item,
MySpinnerListenerDemo.this.areaData[position]);//定义所有的列表项
MySpinnerListenerDemo.this.area
.setAdapter(MySpinnerListenerDemo.this.adapterArea);//设置二级下拉列表的选项内容
}
publicvoidonNothingSelected(AdapterView
>arg0){//表示没有选项的时候触发
//一般此方法现在不关心
}
}
}
实验效果截图:
4.监听时间与日期的变化
main.xml代码如下:
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/input"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"/>
xmlns:
android="
android:
orientation="horizontal"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/date"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
android:
id="@+id/time"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
Activity程序代码:
packageorg.lxh.demo;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.widget.DatePicker;
importandroid.widget.DatePicker.OnDateChangedListener;
importandroid.widget.EditText;
importandroid.widget.TimePicker;
importandroid.widget.TimePicker.OnTimeChangedListener;
publicclassMyDateTimeDemoextendsActivity{
privateEditTextinput=null;
privateDatePickerdate=null;
privateTimePickertime=null;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.input=(EditText)super.findViewById(R.id.input);
this.date=(DatePicker)super.findViewById(R.id.date);
this.time=(TimePicker)super.findViewById(R.id.time);
this.time.setIs24HourView(true);//采用24小时制显示时间
this.time.setOnTimeChangedListener(newOnTimeChangedListenerImpl());
this.date.init(this.date.getYear(),this.date.getMonth(),
this.date.getDayOfMonth(),newOnDateChangedListenerImpl());
this.setDateTime();//希望一开始可以设置一些文本的内容
}
privateclassOnTimeChangedListenerImplimplementsOnTimeChangedListener{
publicvoidonTimeChanged(TimePickerview,inthourOfDay,intminute){
MyDateTimeDemo.this.setDateTime();
}
}
privateclassOnDateChangedListenerImplimplementsOnDateChangedListener{
publicvoidonDateChanged(DatePickerview,intyear,intmonthOfYear,
intdayOfMonth){
MyDateTimeDemo.this.setDateTime();
}
}
publicvoidsetDateTime(){//由于日期时间更改之后文本输入组件的内容也要修改
this.input.setText(this.date.getYear()+"-"
+(this.date.getMonth()+1)+"-"+this.date.getDayOfMonth()
+""+this.time.getCurrentHour()+":
"
+this.time.getCurrentMinute());//修改文本的内容
}
}
实验效果截图:
5.焦点事件
main.xml代码如下:
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/edit"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
text="请输入查询内容"/>
android:
id="@+id/msg"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
text=""/>
android:
id="@+id/txt"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"/>
Activity程序代码:
packageorg.lxh.demo;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnFocusChangeListener;
importandroid.widget.EditText;
importandroid.widget.TextView;
publicclassMyFocusDemoextendsActivity{
privateEditTextedit=null;//在此组件上设置焦点事件
privateTextViewtxt=null;//用于信息提示
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.edit=(EditText)super.findViewById(R.id.edit);//取得组件
this.txt=(TextView)super.findViewById(R.id.txt);//取得组件
this.edit.setOnClickListener(newOnClickListenerImpl());//设置单击事件
this.edit.setOnFocusChangeListener(newOnFocusChangeListenerImpl());
}
privateclassOnClickListenerImplimplementsOnClickListener{
publicvoidonClick(Viewv){
MyFocusDemo.this.edit.setText("");//清空文本
}
}
privateclassOnFocusChangeListenerImplimplementsOnFocusChangeListener{
publicvoidonFocusChange(Viewv,booleanhasFocus){//表示操作的组件,而hasFocus表示是否获得焦点
if(hasFocus){//已经获得了焦点
MyFocusDemo.this.