《Android高级编程》实验指导书Word文档格式.docx
《《Android高级编程》实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《《Android高级编程》实验指导书Word文档格式.docx(69页珍藏版)》请在冰豆网上搜索。
该实验指导书主要参照了AndroidSDKdocs和《Android权威开发指南》(第二版)一书,将遵循由浅入深、循序渐进的原则。
因编者的经验、水平和写作时间限制,书中难免有疏漏、不妥和错误之处,欢迎读者批评指正。
祝学习愉快!
编者
2014年8月
(一)查看联系人信息
【学时数】
2学时
【目的】
学习Android基本界面布局和简单控件的使用
【要求】
1,在开展本实验前,请先掌握教材《Android开发权威指南》(第二版)的两个范例程序:
p35声明和使用Activity源代码目录:
src/ch05/MobileActivity
p40Activity的生命周期源代码目录:
src/ch05/ActivityCycle
2,本实验将创建一个简单Android应用,要求掌握的内容包括:
Android工程的创建,Activity的创建,线性布局和TextView。
【实验步骤】
1,在Eclipse中创建一个AndroidApplicationProject,选择合适的应用名称,Package名称以及AndroidSDK的版本,然后点击Next,如下图所示:
一直点击Next,直到创建工程向导的最后一步,可以设置要创建的Activity名称和Activity所对应界面布局的名称,如下图所示(Activity的名称是MainActivity,该Activity的布局名称是activity_main),点击Finish,完成创建。
2,创建一个新的类Contact,方法如下:
鼠标右键点击工程文件夹src下的子文件夹,在弹出菜单中选择命令New-->
Class,如下图所示:
如下图所示,在弹出的对话框中输入要创建的类名:
Contact,点击Finish,完成类的创建。
编辑Contact类,下面是Contact类的参考实现:
packageedu.ccsu.quickcontacts;
publicclassContact{
Stringname;
//联系人姓名
StringphoneNumber;
//联系人电话号码
StringcellPhone;
//联系人手机号码
Stringemail;
//联系人电子邮件
StringqqNumber;
//联系人QQ号码
//构造函数,创建联系人对象,并且给联系人姓名赋值
publicContact(Stringn){
this.name=n;
}
//构造函数,创建联系人对象,创建的联系人姓名为unknown
publicContact(){
this.name="
unknown"
;
//获取联系人姓名
publicStringgetContactName(){
returnname;
//修改联系人姓名
publicvoidsetContactName(Stringn){
name=n;
}
请在参考实现的基础上实现Contact类除了name属性外,其他属性的get方法和set方法。
3,在Activity的onCreate方法中添加下面的代码:
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Contactzhang=newContact("
张三"
);
//创建一个联系人对象
4,选择文件夹res->
layout里的布局文件,鼠标双击,选择标签activity_main.xml
修改Activity的这个布局文件,创建一个显示联系人信息的界面,参考实现如下:
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
LinearLayoutxmlns:
android="
android:
layout_width="
match_parent"
layout_height="
orientation="
vertical"
>
<
LinearLayout
wrap_content"
horizontal"
TextView
text="
姓名"
/>
id="
@+id/tvName"
/>
/LinearLayout>
手机"
@+id/tvCellPhone"
电子邮件"
@+id/tvEmail"
在模拟器上运行程序,程序界面如下所示:
5,在Activity的onCreate方法中添加下面的代码:
protectedvoidonCreate(BundlesavedInstanceState){
//获取界面布局中的三个TextView对象
TextViewtvName=(TextView)findViewById(R.id.tvName);
TextViewtvEmail=(TextView)findViewById(R.id.tvEmail);
TextViewtvCellPhone=(TextView)findViewById(R.id.tvCellPhone);
//设置第一个TextView对象显示的内容为联系人的姓名
tvName.setText(zhang.getContactName());
}
在上面的代码基础上进行修改,使得界面布局可以显示联系人的电子邮件信息和电话号码信息。
(注意:
首先应该完成第2步,给Contact类添加get方法和set方法,用来修改和获取联系人的信息)
6,运行程序,显示效果如下图所示
(二)编辑和创建联系人
学习Android事件机制和用户交互的编程实现
1在开展本实验前,请先掌握教材《Android开发权威指南》(第二版)的两个范例程序:
p53使用Intent传递数据源代码目录:
src/ch05/TransmitData
p59从Activity返回数据源代码目录:
src/ch05/ActivityResult
2在开展本实验前,请先完成实验
(一)查看联系人信息
3本实验将在实验
(一)查看联系人信息的基础上,加入编辑和创建联系人的功能,要求掌握的内容包括:
启动Activity,在Activity之间传递数据,EditText,Button以及对Button的onClick事件进行编程
1,创建一个新的类EditContactActivity,方法如下:
在弹出的对话框中输入要创建的类名:
EditContactActivity,点击Finish,完成类的创
建,如下图所示:
编辑新创建的这个类,代码如下所示:
packageedu.ccsu.contacts;
importandroid.app.Activity;
importandroid.os.Bundle;
publicclassEditContactActivityextendsActivity{
@Override
publicvoidonCreate(BundlesavedInstanceState){
编辑项目配置文件AndroidManifest.xml中注册这个Activity,编辑后文件内容如下所
示(注意:
加粗字体表示要添加的代码):
manifestxmlns:
package="
edu.ccsu.contacts"
versionCode="
1"
versionName="
uses-sdk
minSdkVersion="
8"
targetSdkVersion="
10"
application
allowBackup="
true"
icon="
@drawable/ic_launcher"
label="
@string/app_name"
theme="
@style/AppTheme"
activity
name="
edu.ccsu.contacts.MainActivity"
intent-filter>
actionandroid:
android.intent.action.MAIN"
categoryandroid:
android.intent.category.LAUNCHER"
/intent-filter>
/activity>
edu.ccsu.contacts.EditContactActivity"
编辑联系人"
/application>
/manifest>
2,鼠标右键点击工程文件夹,在弹出菜单中选择命令New-->
AndroidXMLFile,如下图所示:
在弹出对话框中,输入布局文件名edit_contact,点击Finish,完成布局文件的创建。
双击工程文件夹res->
layout下的edit_contact.xml文件,对布局文件进行编辑,内容如下:
gravity="
center_horizontal"
"
姓名:
EditText
@+id/editName"
200dp"
手机:
@+id/editCellPhone"
电子邮件:
@+id/editEmail"
Button
@+id/btnSave"
120dp"
保存"
Button
@+id/btnNew"
新建联系人"
这个布局文件与实验
(一)的布局相比,几乎完全相同,只在需要输入信息的地方将TextView控件替换为EditText控件,最后在布局中加入一个线性布局和2个Button控件。
3,编辑EditContactActivity类的代码,如下所示:
importandroid.content.Intent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
publicclassEditContactActivityextendsActivity{
privateContactcontact;
privateEditTexteditName;
privateEditTexteditEmail;
privateEditTexteditPhone;
privateButtonbtnSave;
privateButtonbtnNew;
setContentView(R.layout.edit_contact);
editName=(EditText)findViewById(R.id.editName);
editEmail=(EditText)findViewById(R.id.editEmail);
editPhone=(EditText)findViewById(R.id.editCellPhone);
btnSave=(Button)findViewById(R.id.btnSave);
btnNew=(Button)findViewById(R.id.btnNew);
Intentintent=getIntent();
contact=(Contact)intent.getSerializableExtra("
contactObject"
editName.setText(contact.getContactName());
btnSave.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
StringnewName=editName.getEditableText().toString();
contact.setContactName(newName);
Intentintent=newIntent();
intent.putExtra("
contact);
setResult(2,intent);
finish();
}
});
}
4,修改Contact类的代码(修改的部分用加粗字体表示),如下所示:
p