《最新Android应用基础实验指导书.doc》由会员分享,可在线阅读,更多相关《最新Android应用基础实验指导书.doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料Android应用基础实验指导书.实验一:搭建Android平台和创建HelloWorld实验目的本次实验的目的是让大家熟悉搭建智能手机开发平台的过程,了解Andorid开发项目的基本文件目录结构,并实现HelloWorld小例程。实验要求1. 完成Android开发平台的搭建及相关配置2. 创建项目并熟悉文件目录结构3. 实现例程HelloWorld实验内容一、 安装Java JDK下载所需版本的JDK,点击安装到C盘Java SE Development Kit 8u102You must accept the to download this software.Accept Li
2、cense Agreement Decline License Agreement窗体底端Thank you for accepting the Oracle Binary Code License Agreement for Java SE; you may now download this software.Product / File DescriptionFile SizeDownloadWindows x86189.2 MBWindows x64194.68 MB二、安装Android studio 从安卓中文社区(http:/www.android-studio.org/)下载最
3、新版本的 安装包, 安装软件开发平台。对软件进行个性化设置。 三、 建立新项目HelloWorld步骤。四、 运行调试程序步骤。实验二:UI设计实验目的本次实验的目的是让大家熟悉Android开发中的UI设计,包括了解和熟悉常用控件的使用、界面布局和事件处理等内容。实验要求1. 熟悉和掌握界面控件设计2. 了解Android界面布局3. 掌握控件的事件处理实验内容一、常用控件1.常用控件介绍Android中有许多常用控件(简单分类):文本框:TextView、EditText按钮:Button、RadioButton、RadioGroup、CheckBox、ImageButton列表:List
4、、ExpandableListView、Spinner、AutoCompleteTextView、GridView、ImageView进度条:ProgressBar、ProgressDialog、SeekBar、RatingBar选择器:DatePicker、TimePicker菜单:Menu、ContentMenu对话框:Dialog、ProgressDialog常用的控件有文本框、按钮和列表等。2.控件的实现在上一个实验中,我们用TextView实现了在界面显示一句“Hello The Android World!”。 public void onCreate(Bundle savedIn
5、stanceState) super.onCreate(savedInstanceState);TextView textView = new TextView(this);textView.setText(Hello The Android World!);setContentView(textView);现在我们来看一看.xml文件和编码的相互关系。在HelloWorld.java中敲入如下代码:package tju.scs.android.test;import android.app.Activity;import android.os.Bundle;import android.w
6、idget.Button;import android.widget.TextView;public class HelloWorld extends Activity /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView textView = (TextView)findViewById
7、(R.id.textView01); Button button = (Button)findViewById(R.id.button01);注意在上面并没有为textView和button设置文本内容等,另外textView的初始化代码为:TextView textView = (TextView)findViewById(R.id.textView01);此处初始化用到了id为textView01的TextView。在项目目录中找到/res/layout/main.xml,如下: 注意上面列出了两个控件:TextView和Button,id分别为textView01和button01,它们
8、的文本内容分别为string/hello和string/button。在项目目录中找到/res/values/strings.xml,如下: Hello The Android World! I am a button! HelloWorld可以看到两个string:hello和button的内容分别为“Hello The Android World!”和“I am a button!”,即使文本框和按钮在界面上显示的内容,如下图所示:3.控件的属性可以直接在类中为控件设置属性,也可以在xml文件中设置属性。每个控件都有一系列的属性,例如id、size、text、color等等,大家可以找找A
9、PI查看控件的属性。二、界面布局Android中有很多布局:l FrameLayout:最简单的一个布局对象。它里面只显示一个显示对象。Android屏幕元素中所有的显示对象都将会固定在屏幕的左上角,不能指定位置。但允许有多个显示对象,但后一个将会直接在前一个之上进行覆盖显示,把前一个部份或全部挡住(除非后一个是透明的)。l LinearLayout:以单一方向对其中的显示对象进行排列显示,如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理器中将只有一行。同时,它还可以对个别的显示对象设置显示比例。l TableLayout:以拥有任意行列的表格对显示对象进行布局,每个显
10、示对象被分配到各自的单元格之中,但单元格的边框线不可见。l AbsoluteLayout:允许以坐标的方式,指定显示对象的具体位置,左上角的坐标为(0, 0),向下及向右,坐标值变大。这种布局管理器由于显示对象的位置定死了,所以在不同的设备上,有可能会出现最终的显示效果不一致。l RelativeLayout:允许通过指定显示对象相对于其它显示对象或父级对象的相对位置来布局。如一个按钮可以放于另一个按钮的右边,或者可以放在布局管理器的中央。布局中可以放置控件,而每个布局又可以嵌套其他布局,这种思想和之前学习java的布局是一样的。例如在main.xml中如下布局: 在一个LinearLayou
11、t布局下嵌套了两个LinearLayout,出来的效果如下图所示:其他布局请大家自行尝试。三、事情处理事件监听和时间处理的概念大家以前都学习过,android中主要有如下事件方法:l onClick(View v) 一个普通的点击按钮事件 l boolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event)用于在多个事件连续时发生,用于按键重复l boolean onKeyDown(int keyCode,KeyEvent event) 用于在按键进行按下时发生 l boolean onKeyUp(int keyCode,Key
12、Event event) 用于在按键进行释放时发生l onTouchEvent(MotionEvent event)触摸屏事件,当在触摸屏上有动作时发生l boolean onKeyLongPress(int keyCode, KeyEvent event)当长时间按时发生下面以点击一个Button为例子:package tju.scs.android.test;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListene
13、r;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class HelloWorld extends Activity /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.mai
14、n); Button button = (Button)findViewById(R.id.button01); button.setOnClickListener(buttonListener); private OnClickListener buttonListener = new OnClickListener()public void onClick(View v) Toast.makeText(v.getContext(), You have clicked a button!,Toast.LENGTH_LONG).show(); ;为button添加了一个监听buttonList
15、ener,对应的onClick方法则抛出了一则文本框提示用户,效果图如下所示:其他事件处理请大家自行尝试。实验三:Intent、Activity应用一、实验目的本次实验的目的是让大家熟悉Intent和Activity的使用。Intent的最常用的用途是绑定应用程序组件。Intent用来在应用程序Activity间启动、停止和传输。并实现添加用户名,密码小例程。二、实验要求4. 完成Android开发平台的搭建及相关配置5. 创建项目并熟悉文件目录结构6. 实现例程添加用户名,密码实验步骤三、实验步骤项目界面:添加用户名,密码,在另一页面显示用户名。1、创建项目新建一个Android工程命名为t
16、est1,目录结构如下图:2、添加布局文件修改main.xml布局文件(这里增加了两个TextView,两个EditView,一个按钮),如下图新建test2.xml布局文件(这里增加了两个TextView),这个页面是用来显示添加的用户名,如下图:3、创建Activity修改test1.java,并且新建一个Activity,一个是test2.java。,代码分别如下:Test1.java作用:获得页面输入的内容,存储并跳转到test2.xml。 Test2.java作用:从Intent中获得需要显示name的值,并给TextView赋值。4修改AndroidManifest.xml文件比较
17、重要的一步啦,修改AndroidManifest.xml文件(将新增的Activity,test2) 注册一下,代码如下(第16行):实验四 XML文件序列化【目的】理解原始XML资源与其他使用XML文件定义资源的区别。【要求】1)创建原始XML资源;2)在程序中使用原始XML资源。【原理】Android资源管理机制,XML文件操作。【过程】1、创建工程a)Projectname:Chapter03_Resourceb)Packagename:com.example.chapter03_resourcec)Activityname:TestXmlActivityd)Applicationnam
18、e:Chapter03_Resourcee)MinSDKVersion:3图1创建工程图1.原始XML资源文件的定义原始XML资源文件的定义信息通过表3.6来描述。表3.6原始XML资源文件定义和使用资源位置res/xml/test.xm(文件名称任意)原始XML文件格式使用根元素子元素:子元素及属性名称任意获得XML资源的方法getResources().getXml()引用XML资源的格式Java代码中:R.xml.xml_name2.原始XML文件的使用获得原始XML文件的基本思路是,通过getResources().getXml()获得XML原始文件,得到XmlResourcePars
19、er对象,通过该对象来判断是文档的开始还是结尾、是某个标签的开始还是结尾,并通过一些获得属性的方法来遍历XML文件,从而访问XML文件的内容。下面的实例演示了如何访问XML文件内容,并将内容显示在一个TextView中。2.1在Chapter03_Resource工程中的resxml目录下,创建一个test.xml文件。该文件中定义了两条客户信息,属性信息有姓名、年龄、性别和E-mail地址,内容如下所示。123452.2在该工程的reslayout目录下,创建一个test_xml.xml布局文件,该布局文件中添加一个Button和一个TextView视图组件。Button用于响应单击事件访问
20、XML内容,TextView用于显示XML内容。67101116172324图2布局显示图3.源工程代码在该工程的包中创建一个TestXmlActivity类。在该类顶部声明使用到的TextView和Button,在onCreate()方法中实例化,添加Button的单击事件,获得XML内容显示在TextView中。packagecom.amaker.ch03.xml;importjava.io.IOException;importorg.xmlpull.v1.XmlPullParser;importorg.xmlpull.v1.XmlPullParserException;importand
21、roid.app.Activity;importandroid.content.res.Resources;importandroid.content.res.XmlResourceParser;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.TextView;importcom.amaker.test.R;publicclassTestXmlActivityextend
22、sActivityprivateTextViewmyTextView;privateButtonmyButton;OverridepublicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);/设置当前Activity的内容布局视图setContentView(R.layout.test_xml);/通过findViewById方法获得TextView实例myTextView=(TextView)findViewById(R.id.xmlContentTextView01);/通过findViewB
23、yId方法获得Button实例myButton=(Button)findViewById(R.id.xmltTestButton01);/设置按钮的单击事件监听器myButton.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)/定义计数器intcounter=0;/实例化StringBuilderStringBuildersb=newStringBuilder();/获得Resources实例Resourcesr=getResources();/通过Resources,获得XmlResourcePa
24、rser实例XmlResourceParserxrp=r.getXml(R.xml.test);try/如果没有到文件尾继续循环while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT)/如果是开始标签if(xrp.getEventType()=XmlResourceParser.START_TAG)/获得标签名称Stringname=xrp.getName();/判断标签名称是否等于customerif(name.equals(customer)counter+;获得标签属性追加到StringBuilder中sb.append(第+co
25、unter+条客户信+n);sb.append(xrp.getAttributeValue(0)+n);sb.append(xrp.getAttributeValue(1)+n);sb.append(xrp.getAttributeValue(2)+n);sb.append(xrp.getAttributeValue(3)+nn);elseif(xrp.getEventType()=XmlPullParser.END_TAG)elseif(xrp.getEventType()=XmlPullParser.TEXT)/下一个标签xrp.next();/将StringBuilder设置为TextV
26、iew的文本myTextView.setText(sb.toString();catch(XmlPullParserExceptione)e.printStackTrace();catch(IOExceptione)e.printStackTrace(););4.运行程序,结果如下图图3结果运行显示图实验5 ContentProvider应用5.1 实验目的 掌握Android操作系统ContentProvider的基本概念; 掌握使用ContentProvider的实现方法。5.2 实验内容 编写工程ContentProviderTest,并进行数据插入、查询、删除等操作5.3 实验原理一般
27、计算机所使用的操作系统大都会提供共享文件机制,让应用程序彼此间可以存储和访问文件,数据可以相互共享。Android操作系统所采用的方法是不同的,在Android操作系统中,所有应用程序的数据和文件都是属于该应用程序所私有的。但是Android操作系统通过提供内容提供器(Content Providers)方法来公开数据,可以公开数据到数据内容容器内,其他应用程序经过授权可以读取。数据内容提供器的数据类型可以是图像(Image)、音频(Audio)、视频(Video)和个人通讯薄(Personal Content Information)。Content Providers 为存储和获取数据提供了统一的接口,使得在不同的应用程序之间可以共享数据。调用Content Providers可以访问这些数据库,而不用关心存储的细节。内容提供器是应用程序的一个可选的机制,它提供标准语法来读取和写入数据。实现内容提供器和实现SQLite数据库有什么不同呢?应用程序实现SQLite数据库时,由应用程序直接和数据库接口,所以在应用程序中需要实现SQLite的接口db.onCreate()、db.insert ()、db.update()、db.delete()、db.query()和db.close(),而实现内容提供器时,在应用程序和数据库之
限制150内