版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 227实验1 Android SDK开发环境的安装及配置1.1 实验目的 掌握Java SDK和Android SDK开发环境的安装和配置1.2 实验内容 Java SDK的安装和环境变量的配置 Eclipse的安装和配置 Android SDK的安装和环境变量的配置 Eclipse插件ADT的安装和配置 Android模拟器的配置1.3 实验步骤1.Java SDK的安装和环境变量的配置1)下载JDK:官方网址为HYPERLINK /technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html/techne
2、twork/java/javase/downloads/jdk7u9-downloads-1859576.html,根据电脑的操作系统选择正确的版本进行下载(如图1-1)。下载完成之后如图1-2所示。图1-1 JDK下载选择界面图1-2 JDK下载完成示意图2)安装JDK:双击安装包进行安装,显示如图1-3所示的安装向导。图1-3 JDK安装向导3)点击下一步,选中要安装得部分和要安装的路径,建议使用默认配置。“开发工具”是必须安装的,它是JDK的核心,“源代码”是JDK类库包的源代码,建议安装(很多时候都能用到源代码)。“公共JRE”可以选择不安装,因为JDK中包括JRE。这里选择默认的配置
3、,如图1-4所示。图1-4 JDK安装路径选择界面4)选择安装的路径,点击下一步安装JDK,其安装状态如图1-5所示。图1-5 JDK安装状态界面5)当JDK安装完成后会提示是否安装JRE,如图1-6所示。图1-6 JRE安装提示界面6)点击下一步,出现JRE安装进度界面,如图1-7所示。安装完成后如图1-8所示。图1-7 JRE安装进度显示界面图1-8 JRE安装完成界面7)配置环境变量:在Windows操作系统当中配置path和classpath两个环境变量。(1)右击我的电脑-属性,点击“高级”选项卡,单击“环境变量”,如图1-9所示。图1-9 环境变量选择界面(2)选择系统变量中的Pa
4、th变量,如图1-10所示。图1-10 配置Path变量(3)将安装路径复制到Path路径的最后面,(安装路径的查找如图1-11所示),注意添加路径之前先加英文的分号,如图1-12所示。图1-11 复制安装路径图1-12 添加路径(4)验证环境变量是否配置成功,打开命令行窗口,输入命令java version,如可以出现图1-13所示的信息,则说明JDK已经安装成功。图1-13 验证环境变量配置情况(5)配置环境变量classpath,如上所述,点击环境变量,新建系统变量,变量名为classpath,变量值为英文的句号,如图1-14所示。到此为止,两个环境变量也配置成功。图1-14 配置cla
5、sspath变量8)下面运行第一个java程序HelloWorld。(1)新建文件HelloWorld.java 。使用文本编辑器NotePad+打开(如图1-15所示),编写简单的HelloWorld程序。 图1-15 编写HelloWorld程序(2)打开命令行,输入HelloWorld程序所在的磁盘名,对java文件进行编译,编译之后出现一个新的文件HelloWorld.class,最后执行.class文件,打印出“Hello World!”,如图1-16所示。图1-16 编译执行HelloWorld.java文件2. Eclipse的安装和配置1)下载Eclipse:官方网址为HYPE
6、RLINK /downloads/downloads/,根据操作系统的位数来选择Windows 32 Bit或者Windows 64 Bit,如图1-17所示。图1-17 Eclipse下载界面下载完成之后是个压缩包,进行解压缩到某个路径,如图1-18所示。图1-18 解压下载文件2)双击eclipse.exe即可打开,选择一个路径作为workspace,如图1-19所示。图1-19 选择workspace路径3.Android SDK的安装和配置1)官方下载地址为HYPERLINK /sdk/index.html/sdk/index.html,下载完成之后进行安装,如图1-20所示。图1-2
7、0 Android SDK下载2)配置环境变量将tools文件夹所在的路径加入到环境变量path中,如图1-21所示。图1-21 配置环境变量Eclipse插件ADT的安装和配置在eclipse中的help选项中选择Install New Software,如图1-22所示。图1-22 Eclipes运行界面1)输入网址HYPERLINK /android/eclipse/android/eclipse,点击Add,如图1-23所示。图1-23 下载插件ADT2)点击Next进行安装。然后在window中选择Preferences中进行路径配置。图1-24 路径配置Android模拟器的配置1
8、)在eclipse中选择安卓标志图标进行模拟器配置,如图1-25所示。图1-25 Android模拟器的配置第一步2)点解New,配置模拟器的详细参数,如图1-26所示。,图1-26 Android模拟器的配置第二步3)点击Creat AVD,然后选择4.0.3,点击Start,进行发布,如图1-27所示。然后Android应用就可以运行于模拟器上面了。1-27 注册AVD实验2 第一个应用程序HelloWorld2.1 实验目的 熟悉和了解Eclipse开发环境 掌握在Eclipse开发环境下新建Android应用工程及运行Android应用程序的方法。2.2 实验内容 新建Android工
9、程,并正确设置其运行环境。 在模拟器上运行Android应用程序。 在我们的开发平台上运行Android应用程序。2.1 实验步骤1)Eclipse为我们提供了大量的快捷键,要记住每一个快捷键几乎是不可能的,但是掌握一些常用的快捷键,可以大大提升我们的开发效率。 Alt+/(代码助手功能(代码提示) Ctrl+Shift+W(关闭所有已打开的编辑窗口) Alt+Shift+R (重命名文件或变量) Ctrl+Shift+O (自动导入需要的包并删除多余的import的语句) Alt+Shift+F (代码格式化) Ctrl+1 (快速修复) Ctrl+D (删除一行,光标可以放在这行的任意位置
10、) Ctrl+Z (撤销) Ctrl+Y (恢复) Ctrl+/ (添加与取出注释/) Alt+Shift+S (快速添加java Bean类的各种方法)2)打开Eclipse,在菜单栏一次选择:File-New-Project打开new project对话框,点击Android选择Android project,如图2-1所示。图2-1Eclipse工作界面图2- 2新工程命名Project Name:工程名为HelloWorld,如图2-3所示。图2-3建立新工程Application Name:应用程序的名字,可以输入你想要的字符串,这里我们输入HelloWorld,如图6-30所示。P
11、ackage Name:包名,至少是两级格式,如a.b,这里我们输入。Creat Activity:自动帮我们创建Activity,取名为HelloWorldActivity。Minimum SDK:支持SDK的最低版本为8。到此,一个Android工程建立完毕,其工程目录如图2-4所示。图2-4 新工程目录3)在模拟器上运行该程序选择HelloWorld,右击选择Run As-Android Application,或者Run-Run Configurations,如图2-5所示。图2-5 运行程序运行结果如图2-6所示。-图2-6 运行结果 右键点击HelloWorld工程,一次选择Run
12、 As-Android Application,如图2-7所示。待实验箱出现图2-8所示,表示HelloWorld工程运行成功,图2-7在其他开发平台上运行程序选择图2-8 HelloWorld工程运行成功界面实验3 活动Activity3.1 实验目的 了解Android应用程序中的活动程序Activity. 了解Activity执行状态迁移的生命周期.3.2 实验内容 编写程序测试Android活动程序Activity执行状态迁移的生命周期的具体过程。3.3 实验原理Android操作系统的活动程序(Activity)是最基本的处理工作单元,大部分的活动程序都会有一个相对应的显示窗体,就好
13、像HTML程序都会针对某一个网页来描述。Android应用程序的窗体就好比一个配置了按钮、编辑框和文本框的窗体,一个可用浏览器显示的Web网页或一个播放3D影像的窗体。一个Android应用程序是由一个或多个活动程序组成。Activity有三个状态:(1)当它在屏幕前台时(位于当前任务堆栈的顶部),它是激活或运行状态。它就是响应用户操作的Activity。(2)当它上面有另外一个Activity,使它失去了焦点但仍然对用户可见时,它处于暂停状态。在它之上的Activity没有完全覆盖屏幕,或者是透明的,被暂停的Activity仍然对用户可见,并且是存活状态(它保留着所有的状态和成员信息并保持和
14、窗口管理器的连接)。如果系统处于内存不足时会杀死这个Activity。(3)当它完全被另一个Activity覆盖时则处于停止状态。它仍然保留所有的状态和成员信息。然而对用户是不可见的,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个Activity。当Activity从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化:/ 第一次创建是调用。在Acticity整个生命周期只会被调用一次 protected void onCreate(Bundle savedInstanceState);/ onCreate 调用之后就会调用 onStart protected voi
15、d onStart();/ onStart 之后调用 onRestart。此方法之后 Acticity 处于运行(激活)状态。 protected void onRestart(); protected void onResume();/* 当一个新的 Activity 被打开后,原来的 Activity 就会调用这个状态。* 如果新打开的 Activity 并没有完全覆盖原来的 Activity。或者新的*Activity 是半透明状态, 原来的 Activity 还可以见。那么就只会调用这*个方法,使 Activity 处于暂停状态,否则,继续往下调用 stop */ protected
16、void onPause();/ 当一个新的 Activity 被打开之后,而原来的 Activity 被它覆盖掉时,/ 在调完 onPause 方法后,就会调用onStop,使 Activity 处于停止状态 protected void onStop();/当 Activity 被销毁的时候,将调用 onDestroy protected void onDestroy();这七个方法定义了Activity的完整生命周期,实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环。 Activity的完整生命周期自第一次调用onCreate()开始,直至调用onDestroy()为止。Activ
17、ity在onCreate()中设置所有“全局”状态以完成初始化,而在onDestroy()中释放所有系统资源。例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程,而在 onDestroy()销毁线程。Activity的可视生命周期自onStart()调用开始直到相应的onStop()调用结束。在此期间,用户可以在屏幕上看到Activity,尽管它也许并不是位于前台或者也不与用户进行交互。在这两个方法之间,我们可以保留用来向用户显示这个Activity所需的资源。例如,当用户不再看见我们显示的内容时,我们可以在onStart()中注册一个Broadc
18、astReceiver来监控会影响UI的变化,而在onStop()中来注消。onStart() 和 onStop() 方法可以随着应用程序是否为用户可见而被多次调用。Activity的活跃生命周期自onResume()调用起,至相应的onPause()调用为止。在此期间,Activity位于前台最上面并与用户进行交互。Activity会经常在暂停和恢复之间进行状态转换例如当设备转入休眠状态或者有新的Activity启动时,将调用onPause() 方法。当Activity获得结果或者接收到新的Intent时会调用onResume() 方法。图3-1是官网给出的一个Activity重要的状态路径
19、。直角矩形代表Activity在不同状态之间转换时,你可以调用的回调函数来实现某些操作。带颜色的椭圆代表Activity可以处于的主要状态。图3-1 Activity重要的状态路径3.4 实验步骤1)编程Activity_Lifecycle工程2)在Android模拟器上运行该程序右键单击Activity_Lifecycley应用程序工程,依次选择Run As-Android Application,即会运行此应用程序。一开始运行该应用程序,首先会运行onCreat()方法,直接显示main.XML窗体布局,如图3-2所示。图3-2 main.XML窗体布局接着开始执行FirstActivit
20、的onCreat()-onStart()-onResume()方法,打印出相关信息,如图3-3所示。图3-3 FirstActivit执行界面然后点击按钮,启动SecondActivity,如图3-4所示。图3-4 启动SecondActivity依次执行FirstActivity的onPause(),SecondActivity的onCreat()- onStart()-onResume()和FirstActivity的onStop()方法,如图3-5所示。图3-5 FirstActivity的执行顺序此时点击模拟器上的按钮,界面回到FirstActivity,如图3-6所示。图3-6Fir
21、stActivity界面打印出信息如图3-7所示。图3-7 打印信息此时点击打电话按钮,打印出信息如图3-8所示。图3-8 点击“电话按钮”后的信息打印界面点击回到FirstActivity,打印信息如图3-9所示。图3-9 FirstActivity信息界面点击返回到主界面,打印信息如图3-10所示。图3-10 主界面4)为了加深对这几个方法的了解,可是试着运行Activity_Lifecycle_01,只是把SecondActivity变成了窗口样式,代码没有改变,但是打印出的信息不同了,自己可以尝试分析。实验4 Activity&Intent4.1 实验目的了解Android的意图方法I
22、ntent了解Android活动程序Activity和意图方法Intent之间的关系4.2 实验内容 编写程序测试Android活动程序Activity如何进行显示窗体的切换 使用Intent在Activity之间传递数据4.3 实验原理一般情况Android应用程序是由以下四种组件构造而成的: 活动 广播接收器 服务 内容提供器需要注意的是,并不是每个Android应用程序都必须构建这四个组件,有些可能由这些组件的组合而成。活动是最基本的Android应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件
23、组成的用户接口,并对事件做出响应。大多数的应用是由多屏幕显示组成。在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在SDK中给出了Intent作用的表现形式为:通过HYPERLINK /ref
24、erence/android/content/Context.html l startActivity(android.content.Intent)Context.startActivity()或者HYPERLINK /reference/android/app/Activity.html l startActivityForResult(android.content.Intent, int)Activity.startActivityForResult()启动一个Activity;通过HYPERLINK /reference/android/content/Context.html l
25、startService(android.content.Intent)Context.startService()启动一个服务,或者通过HYPERLINK /reference/android/content/Context.html l bindService(android.content.Intent, android.content.ServiceConnection, int)Context.bindService()和后台服务交互;通过广播方法(如Context.sendBroadcast(),Context。Send或dereBroadcast(),Context。sendSt
26、ickyBroadcast()发给broadcast receivers。Intent属性的设置,包括以下几点:(以下为XML中定义,当然也可以通过Intent类的方法来获取和设置)Action,也就是要执行的动作。SDK中定义了一些标准的动作,如表7-1所示。当然,也可以自定义动作(自定义的动作在使用时,需要加上包名作为前缀,如ject.SHOW_COLOR”),并可定义相应的Activity来处理我们的自定义动作。(2)Data,也就是执行动作要操作的数据Android中采用指向数据的一个URI来表示,如在联系人应用中,一个指向某联系人的URI可能为:content:/contacts/1
27、。对于不同的动作,其URI数据的类型是不同的(可以设置type属性指定特定类型数据),如ACTION_EDIT指定Data为文件URI,打电话为tel:URI,访问网络为http:URI,而由content provider提供的数据则为content:URIs。表7-1 SDK中定义的标准动作OnstantTarget componentActionACTION_CALLactivityInitiate a phone call.ACTION_EDITactivityDisplay data for the user to edit.ACTION_MAINactivityStart up a
28、s the initial activity of a task, with no data input and no returned output.ACTION_SYNCactivitySynchronize data on a server with data on the mobile device.ACTION_BATTERY_LOWbroadcast receiverA warning that the battery is low.ACTION_HEADSET_PLUGbroadcast receiverA headset has been plugged into the de
29、vice, or unplugged from it.ACTION_SCREEN_ONbroadcast receiverThe screen has been turned on.ACTION_TIMEZONE_CHANGEDbroadcast receiverThe setting for the time zone has changed.(3)type(数据类型),显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。(4)category(类别),被执行动作的附加信息。例如 LA
30、UNCHER_CATEGORY 表示Intent 的接受者应该在Launcher中作为顶级应用出现;而ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个,这些动作可以在同一块数据上执行。还有其他的行为如表7-2所示。表7-2 被执行动作的附加信息ConstantMeaningCATEGORY_BROWSABLEThe target activity can be safely invoked by the browser to display data referenced by a link for example, an image or an e-m
31、ail message.CATEGORY_GADGETThe activity can be embedded inside of another activity that hosts gadgets.CATEGORY_HOMEThe activity displays the home screen, the first screen the user sees when the device is turned on or when the HOME key is pressed.CATEGORY_LAUNCHERThe activity can be the initial activ
32、ity of a task and is listed in the top-level application launcher.CATEGORY_PREFERENCEThe target activity is a preference panel.(5)component(组件),指定Intent的的目标组件的类名称。通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以
33、后,Intent的其它所有属性都是可选的。(6)extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的的标题、正文保存在extras里,传给电子邮件发送组件。(a)Intent-Filter的定义中一些属性设置的例子 (b)Intent用法实例无参数Activity跳转Intent it = new Intent(Activity.Main.this, Activity2.class);startActivity(it); 向下一个Activity传递数据(使用Bundle和Intent.putEx
34、tras)Intent it = new Intent(Activity.Main.this, Activity2.class);Bundle bundle=new Bundle();bundle.putString(name, This is from MainActivity!);it.putExtras(bundle); / it.putExtra(“test”, shuju”);startActivity(it); / startActivityForResult(it,REQUEST_CODE);对于数据的获取可以采用:Bundle bundle=getIntent().getExt
35、ras();String name=bundle.getString(name);(c)向上一个Activity返回结果(使用setResult,针对startActivityForResult(it,REQUEST_CODE)启动的Activity)Intent intent=getIntent();Bundle bundle2=new Bundle();bundle2.putString(name, This is from ShowMsg!);intent.putExtras(bundle2);setResult(RESULT_OK, intent);(d)回调上一个Activity的结
36、果处理函数(onActivityResult)Override protected void onActivityResult(int requestCode, int resultCode, Intent data) / TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (requestCode=REQUEST_CODE) if(resultCode=RESULT_CANCELED) setTitle(cancle); else if (resultCode=RE
37、SULT_OK) String temp=null; Bundle bundle=data.getExtras(); if(bundle!=null) temp=bundle.getString(name); setTitle(temp); 其他的一些应用实例:打电话 a.叫出拨号程序 Uri uri = Uri.parse(tel:0800000123);Intent it = new Intent(Intent.ACTION_DIAL, uri);startActivity(it);b.直接打电话出去Uri uri = Uri.parse(tel:0800000123);Intent it
38、 = new Intent(Intent.ACTION_CALL, uri);startActivity(it);使用這些程序,需要在 AndroidManifest.xml 中,加上 /传送SMS/MMS调用短信程序Intent it = new Intent(Intent.ACTION_VIEW, uri); it.putExtra(sms_body, The SMS text); it.setType(vnd.android-dir/mms-sms); startActivity(it);b.传送消息 Uri uri = Uri.parse(smsto:/0800000123); Int
39、ent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra(sms_body, The SMS text); startActivity(it);c.传送 MMSUri uri = Uri.parse(content:/media/external/images/media/23);Intent it = new Intent(Intent.ACTION_SEND);it.putExtra(sms_body, some text);it.putExtra(Intent.EXTRA_STREAM, uri);it.setType(ima
40、ge/png);startActivity(it);4.4 实验步骤利用Activity_intent应用程序来演示如何利用Intent类来进行显示窗体间的切换。按照前面所属步骤导入工程,程序启动起来,显示的第一个窗体如图4-1所示。图4-1启动程序后所显示的第一个窗体点击按钮,启动OtherActivity,此时,通过以下代码向OtherActivity传递数据:/生成一个Intent对象Intent intent = new Intent();/在Intent对象当中添加一个键值对intent.putExtra(testIntent, 123);/设置Intent对象要启动的Activit
41、yintent.setClass(Activity01.this, OtherActivity.class);/通过Intent对象启动另外一个ActivityActivity01.this.startActivity(intent);OtherActivity启动之后,如图4-2所示,包含一个TextView,用来显示从Activity01传递过来的数据。图4-2 从Activity01传递过来的数据使用Intent启动发短信的Activity,以下的4行代码将启动发送短信的Activity。Uri uri = Uri.parse(smsto:/0800000123); Intent int
42、ent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra(sms_body, The SMS text);startActivity(intent);执行结果如图4-3所示。图4-3使用Intent启动发短信的Activity点击按钮,启动发短信的Activity,如图4-4所示。图4-4 发短信的Activity界面上面的例子说明,Intent在两个Activity之间传递数据,并不要求这两个Activity在同一个应用程序下。实验5 Android常用的控件5.1 实验目的掌握Android常用控件的使用方法和基本属性。5.2
43、 实验内容测试Android应用程序中常用控件的使用方法5.3 实验原理(1)TextView文本显示框xml设计,代码如下所示。代码设计 TextView textView = new TextView(this); /声明对象 textView.setTextColor(Color.RED); /设置字体颜色 textView.setTextSize(20); /设置字体大小 textView.setBackgroundColor(Color.BLUE);/控件背景色 textView.setText(你好) /显示的文字 textView.setHeight textView.setWi
44、dth textView.setVisibility(GONE/VISIBLE); /设置为不可见/可见 textView.setGravity(Gravity.CENTER);/设置文字权重绑定监听器 TextView textView = (TextView)findViewById(R.id.myTextView); /得到对象textView.setOnClickListener(new OnClickListener() public void onClick(View v) / TODO Auto-generated method stubsecondTextView.setTex
45、t(你好!););(2)Button按钮设置监听器myButton.setOnClickListener(new OnClickListener() public void onClick(View v) / TODO Auto-generated method stub/处理按钮事件产生一个Toast,利用button.getText()得到按钮显示的内容Toast toast = Toast.makeText(Activity01.this, 你点击了“+myButton.getText()+”按钮!,Toast.LENGTH_LONG);/设置toast显示的位置toast.setGra
46、vity(Gravity.TOP, 0, 150);/显示该Toasttoast.show(););ImageButton带图标的按钮控件 /在xml设计所使用的图片 代码中设计imageButton.setImageDrawable(getResources().getDrawable(R.drawable.image2);/在代码中设计使用的图片(得到对象后) 设置监听器imageButton=(Button) findViewById(R.id.myButton); imageButton.setOnClickListener(new OnClickListener() public v
47、oid onClick(View v) / TODO Auto-generated method stub);(4)EditText文本编辑框 (a)xml设计 (b)代码设计myEditText1=(EditText) findViewById(R.id.myEditText1); myEditText1.setOnClickListener(new OnClickListener() public void onClick(View v) / TODO Auto-generated method stub);(5)CheckBox复选框控件CheckBox readBox = (Check
48、Box)findViewById(R.id.read);/多选按钮添加监听器readBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) / TODO Auto-generated method stubif(isChecked) Toast.makeText(ActivityTest.this,read,Toast.LENGTH_SHORT).sh
49、ow(); System.out.println(read is checked); else System.out.println(read is not checked); );(6)RadioButton单选按钮,RadioGroup单选钮组一个单选选择由两部分组成,分别是前面的选择按钮和后面的内容。按钮通过RadioButton来实现,答案通过RadioGroup来实现 代码中private RadioGroup radioGroup;private RadioButton femaleButton;private RadioButton maleButton;radioGroup =
50、 (RadioGroup)findViewById(R.id.radioGroup); femaleButton = (RadioButton)findViewById(R.id.femaleButton); maleButton = (RadioButton)findViewById(R.id.maleButton);radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() public void onCheckedChanged(RadioGroup group, int checkedId
51、) / TODO Auto-generated method stubif(femaleButton.getId()=checkedId)Toast.makeText(ActivityTest.this,性别是女, Toast.LENGTH_SHORT).show();System.out.println(famele is checked);else if(maleButton.getId()=checkedId)Toast.makeText(ActivityTest.this,性别是男, Toast.LENGTH_SHORT).show(); System.out.println(male
52、 is checked););实现结果如图5-1所示。图5-1 单选按钮和单选钮组(7)ListView列表在main.xml中定义ListView另外还需要一个布局文件,用于定义ListView中显示内容的格式在代码中的使用如下(注意:我们所定义的Activity 要继承ListActivity,它是Activity的子类):ArrayListHashMap list = new ArrayListHashMap(); HashMap map1 = new HashMap(); HashMap map2 = new HashMap(); HashMap map3 = new HashMap(
53、); map1.put(user_name, 张三); map1.put(user_ip, ); map2.put(user_name, 李四); map2.put(user_ip, ); map3.put(user_name, 王五); map3.put(user_ip, ); list.add(map1); list.add(map2); list.add(map3); ListView listView=getListView(); registerForContextMenu(listView); /public SimpleAdapter (Context context, List
54、? extends Map data, int resource, String from, int to) /1.上下文 /2.为ListView提供数据 /3.用来设置条目样式的布局文件 /4.制定条目数据的key /5.制定条目数据现实的控件ID SimpleAdapter listAdapter = new SimpleAdapter(this, list, R.layout.user, new Stringuser_name,user_ip, new intR.id.user_name,R.id.user_ip); /将SimpleAdapter设置给当前的ListActivity
55、setListAdapter(listAdapter); Public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) menu.setHeaderTitle(选项); menu.add(0, 1, 1, 删除); menu.add(0, 2, 3, 编辑); super.onCreateContextMenu(menu, v, menuInfo); /菜单单击响应 Override public boolean onContextItemSelected(MenuItem item) ret
56、urn true;Overrideprotected void onListItemClick(ListView l, View v, int position, long id) / TODO Auto-generated method stubsuper.onListItemClick(l, v, position, id);System.out.println(id+id);System.out.println(position+position);实验结果如图5-2所示。 图5-2 列表(ListView)(9)ProgressBar进度条private ProgressBar fir
57、stBar =null;private ProgressBar secondBar = null;private Button myButton = null;private int i = 0 ; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /根据控件的ID来取得代表控件的对象 firstBar = (ProgressBar)findViewById(R.id.firstBar); seco
58、ndBar = (ProgressBar)findViewById(R.id.secondBar); myButton = (Button)findViewById(R.id.myButton); myButton.setOnClickListener(new ButtonListener(); class ButtonListener implements OnClickListener public void onClick(View v) if(i = 0)/设置进度条处于可见的状态firstBar.setVisibility(View.VISIBLE);firstBar.setMax(
59、150);secondBar.setVisibility(View.VISIBLE);else if ( i firstBar.getMax()/设置主进度条的当前值firstBar.setProgress(i);/设置第二进度条的当前值firstBar.setSecondaryProgress(i + 10);/因为默认的进度条无法显示进行的状态/secondBar.setProgress(i);else/设置进度条处于不可见状态firstBar.setVisibility(View.GONE);secondBar.setVisibility(View.GONE);i = i + 10 ;实
60、验结果如图5-3所示。图5-3 进度条(ProgressBar)(9)TimePicker时间选择控件public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); Button showTimeButton = (Button)findViewById(R.id.myButton); showTimeButton.setOnClickListener(new OnClickListener() public void onCli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机构融资策划课程设计
- 机场应急救援课程设计
- 八年级物理上册 第一章 物态及其变化 二 熔化和凝固教案设计(pdf)(新版)北师大版
- 机器人应用讲解课程设计
- 机器人学导论课程设计
- 机加车间课程设计
- 2024年凌柏与伴侣解除婚姻关系协议
- 本科交通工程课程设计
- 2024至2030年涤纶提花面料项目投资价值分析报告
- 2024年仓储物流园转让合同
- 走中国工业化道路的思想及成就
- ESTIC-AU40使用说明书(中文100版)(共138页)
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- Prolog语言(耐心看完-你就入门了)
- 保霸线外加电流深井阳极地床阴极保护工程施工方案
- 蓝色商务大气感恩同行集团公司20周年庆典PPT模板
- 恒温箱PLC控制系统毕业设计
- 雍琦版 《法律逻辑学》课后习题答案
- 176033山西《装饰工程预算定额》定额说明及计算规则
- 新技术、新材料、新工艺”试点输电线路建设的通知国家电网
- 水泵试运转记录表
评论
0/150
提交评论