智能终端软件开发实验_第1页
智能终端软件开发实验_第2页
智能终端软件开发实验_第3页
智能终端软件开发实验_第4页
智能终端软件开发实验_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 实验一: android 用户界面( 1)一、实验目的1. 熟悉 android 应用程序开发环境的构建过程,了解android 应用程序的文件结构,学会进行android应用程序开发。2. 理解 android 用户界面的基本概念,掌握textview 、edittext 、 button 、imagebutton 、checkbox、radiobutton 、spinner 、listview等常用控件的使用。3. 了解 android 系统的 6种界面布局,掌握线性布局、框架布局、表格布局、相对布局、绝对布局、网格布局等界面布局的使用。二、实验内容开发如图所示的android 应用程

2、序。功能及要求。1) 在edittext中输入数据,当点击input 按钮时,把输入的信息在testview 上显示;2) 当选择 checkbox1时,在testview 上显示 “ checkbox1被选中”; 当选择 checkbox2时, 在testview上显示“checkbox2被选中”; 当checkbox1和checkbox2均被选中时, 在testview 上显示“checkbox1和checkbox2被选中”;3) 当选择 radiobutton1 时,在testview 上显示“ radiobutton1 被选中”;当选择radiobutton2时,在 testview

3、上显示“ radiobutton1 被选中”;radiobutton1 和radiobutton2 不能同时被选中;4) 点击 close 时,关闭应用程序。三、试做步骤和参考代码1. 构建实验环境1)下载 adt-bundle-windows-x86-20130917.467161976(集成 android4.3版本);2)安装 jdk;3)注册环境变量。2. 创建新的 android 程序过程1)打开 android 工程向导: file new project android android project;2)填写工程名称、选择程序运行的android 系统版本、填写应用程序名称3)

4、点击“ finish ”按钮,工程向导会根据用户所填写的android 工程信息,自动在后台创建android工程所需要的基础文件和目录结构。3. 编程实现实验内容【主要参考代码】1)界面布局 2)获取各控件 id final textview textview = (textview)findviewbyid(r.id.textview01); final edittext edittext = (edittext)findviewbyid(r.id.edittext 01); final checkbox checkbox1= (checkbox)findviewbyid(r.id.che

5、ckbox01); 3 final checkbox checkbox2= (checkbox)findviewbyid(r.id.checkbox02); final radiobutton radiobutton1 = (radiobutton)findviewbyid(r.id.radiobutton01); final radiobutton radiobutton2 = (radiobutton)findviewbyid(r.id.radiobutton02); button button1 = (button)findviewbyid(r.id.button01); button

6、button2 = (button)findviewbyid(r.id.button02); 3)监听事件 checkbox监听:checkbox.onclicklistener checkboxlistener = new checkbox.onclicklistener() override public void onclick(view v) switch(v.getid() case r.id.checkbox01: textview.settext(checkbox01, ischecked:+string.valueof(checkbox1.ischecked(); return

7、; case r.id.checkbox02: textview.settext(checkbox02, ischecked:+string.valueof(checkbox2.ischecked(); return; ; radiobutton监听: radiobutton.onclicklistener radiobuttonlistener = new radiobutton.onclicklistener() override public void onclick(view v) switch(v.getid() case r.id.radiobutton01: textview.s

8、ettext(radiobutton1 is selected); return; case r.id.radiobutton02: textview.settext(radiobutton2 is selected); return; ; radiobutton1.setonclicklistener(radiobuttonlistener); radiobutton2.setonclicklistener(radiobuttonlistener); button监听: button1.setonclicklistener(new view.onclicklistener() public

9、void onclick(view view) string msg = edittext.gettext().tostring(); textview.settext(msg); ); button2.setonclicklistener(new view.onclicklistener() public void onclick(view view) 4 finish(); );四、实验要求1. 按时到指定实验室进行实验;2. 学生应独立完成android 程序开发平台的搭建;3. 会创建新的 android 应用程序及编辑已创建的android 应用程序;4. 完成实验内容要求的andr

10、oid 应用程序五、实验报告实验报告应包含以下内容:1. 实验目的;2. 实验内容;3.android 应用程序创建过程(工程名字用本人的姓或班内序号+experiment1 组成);4. 给出主要的程序代码,如界面布局文件、逻辑代码文件等中的实现代码。5. 在报告中给出程序运行界面;6. 应有必要的总结和分析。5 实验二: android 用户界面( 2)一、实验目的1. 掌握菜单资源的使用,能够编程实现选项菜单、子菜单和快捷菜单。2. 了解操作栏和 fragment 的基本概念和使用方法。3. 熟悉 mvc 模型中的控制器概念和界面事件,能够处理单击事件、按键事件、触摸事件等界面事件的处理

11、。二、实验内容开发如图所示的android 应用程序。(1)(2)(3)功能及要求。1) 图( 1)所示为程序的初始界面,给出使用在xml 文件中定义和逻辑代码动态生成两种菜单定义方法的实现代码;2) 定义菜单的的点击事件,该事件的处理过程是:若某个菜单子项被选中,在textview 控件显示该菜单子项的名称和菜单id;3) 图( 2)所示是使用 xml 文件方法实现菜单定义时,点击“打印”子项时的用户界面;4) 图( 3)所示是使用逻辑代码动态生成方法实现菜单定义时,点击“打印”子项时的用户界面。三、试做步骤和参考代码【主要参考代码】1)xml 实现方法 6 2)获取各控件 id final

12、 static int menu_00 = menu.first; final static int menu_01 = menu.first+1; final static int menu_02 = menu.first+2; final static int menu_03 = menu.first+3; final static int menu_04 = menu.first+4; public boolean oncreateoptionsmenu(menu menu) menu.add(0,menu_00,0, 打印 ).seticon(r.drawable.pic0); men

13、u.add(0,menu_01,1, 新建 ).seticon(r.drawable.pic1); menu.add(0,menu_02,2, 邮件 ).seticon(r.drawable.pic2); menu.add(0,menu_03,3, 设置 ).seticon(r.drawable.pic3); menu.add(0,menu_04,4, 订阅 ).seticon(r.drawable.pic4); return true; 3)逻辑代码 public boolean onoptionsitemselected(menuitem item) textview label = (t

14、extview)findviewbyid(r.id.label); switch (item.getitemid() case menu_00: label.settext(打印,菜单 id: + item.getitemid(); return true; case menu_01: label.settext(新建,菜单 id: + item.getitemid(); return true; case menu_02: label.settext(邮件,菜单 id: + item.getitemid(); return true; case menu_03: label.settext(

15、设置,菜单 id: + item.getitemid(); return true; case menu_04: label.settext(订阅,菜单 id: + item.getitemid(); return true; default: return false; 四、实验要求1. 按时到指定实验室进行实验;7 2. 完成实验内容要求的android 应用程序五、实验报告实验报告应包含以下内容:1. 实验目的;2. 实验内容;3.android 应用程序创建过程(工程名字用本人的姓或班内序号+experiment2 组成);4. 给出主要的程序代码,如界面布局文件、菜单定义文件、逻辑代

16、码文件等中的实现代码。5. 在报告中给出程序运行界面;6. 应有必要的总结和分析。8 实验三: intent 及组件通信一、实验目的1. 了解使用 intent进行组件通信的原理。2. 掌握使用 intent启动 activity的方法。3. 掌握获取 activity返回值的方法。二、实验内容开发如图所示的android 应用程序。(1)(2)(3)功能及要求。1) 图( 1)为程序的初始界面(父activity),其主要功能是提供1个textview 和两个 button ,点击“启动 activity1”则启动图( 2)所示的 subactivity1(子 activity),点击“启动

17、activity2”则启动图( 3)所示的 subactivity2(子 activity);2) subactivity1包含 1个textview 、1个 edittext 和两个 button ,textview 用于提示当前activity是子activity, edittext 用于输入返回父activity的信息,点击“接受”button 则关闭 subactivity1并把输入信息返回,点击“撤销”button 则直接关闭 subactivity1;3) 当有信息从子 activity返回时,父 activity接收返回信息并把它显示在textview 控件上;4) subact

18、ivity2包含 1个textview 、 1个button , textview 用于提示当前 activity是子 activity, button则直接关闭 subactivity2。三、试做步骤和参考代码【主要参考代码】1)父 activity 2)subactivity1 / 3)subactivity2 10 4)子 activity注册 4)subactivity1定义public class subactivity1 extends activity override public void oncreate(bundle savedinstancestate) super.o

19、ncreate(savedinstancestate); setcontentview(r.layout.subactivity1); final edittext edittext = (edittext)findviewbyid(r.id.edit); button btnok = (button)findviewbyid(r.id.btn_ok); button btncancel = (button)findviewbyid(r.id.btn_cancel); btnok.setonclicklistener(new onclicklistener() public void oncl

20、ick(view view) string uristring = edittext.gettext().tostring(); uri data = uri.parse(uristring); intent result = new intent(null, data); setresult(result_ok, result); finish(); ); btncancel.setonclicklistener(new onclicklistener() public void onclick(view view) 11 setresult(result_canceled, null);

21、finish(); ); 5)subactivity2定义public class subactivity2 extends activity /* called when the activity is first created. */ override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.subactivity2); button btnreturn = (button)findviewbyid(r.id.bt

22、n_return); btnreturn.setonclicklistener(new onclicklistener() public void onclick(view view) setresult(result_canceled, null); finish(); ); 6)主要逻辑代码public class activitycommunicationactivity extends activity private static final int subactivity1 = 1; private static final int subactivity2 = 2; textvi

23、ew textview; /* called when the activity is first created. */ override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); textview = (textview)findviewbyid(r.id.textshow); final button btn1 = (button)findviewbyid(r.id.btn1); final butto

24、n btn2 = (button)findviewbyid(r.id.btn2); btn1.setonclicklistener(new onclicklistener() public void onclick(view view) intent intent = new intent(activitycommunicationactivity.this, subactivity1.class); startactivityforresult(intent, subactivity1); 12 ); btn2.setonclicklistener(new onclicklistener()

25、 public void onclick(view view) intent intent = new intent(activitycommunicationactivity.this, subactivity2.class); startactivityforresult(intent, subactivity2); ); override protected void onactivityresult(int requestcode, int resultcode, intent data) super.onactivityresult(requestcode, resultcode,

26、data); switch(requestcode) case subactivity1: if (resultcode = result_ok) uri uridata = data.getdata(); textview.settext(uridata.tostring(); break; case subactivity2: break; 四、实验要求1. 按时到指定实验室进行实验;2. 完成实验内容要求的android 应用程序五、实验报告实验报告应包含以下内容:1. 实验目的;2. 实验内容;3.android 应用程序创建过程(工程名字用本人的姓或班内序号+experiment3

27、组成);4. 给出主要的程序代码,如界面布局文件、菜单定义文件、逻辑代码文件等中的实现代码。5. 在报告中给出程序运行界面;6. 应有必要的总结和分析。13 实验四: service及后台服务一、实验目的1. 了解 service 的原理和用途,掌握本地服务的管理方法。2. 掌握服务的隐式启动和显式启动方法。3. 了解线程的启动、挂起和停止方法,了解跨线程的界面更新方法。二、实验内容开发如图所示的android 应用程序。(1)(2)(3)功能及要求。1)图( 1)为程序的初始界面,设计4个textview 和3个button 2)点击“服务绑定”button ,则将已定义好的“mathser

28、vice ”服务绑定到本进程(“mathservice ”服务的功能是提供“+、- 、* 、/ ”四个运算);3)点击“取消绑定”button ,则将“mathservice ”服务与本进程的绑定取消;4)点击“数学运算”button ,则首先生成两个0-100 的随机数,然后分别计算这两个数的和、差、积和商,并分别显示在4个textview 上;若点击“数学运算”button 时,“ mathservice ”服务未被绑定或已经解除了绑定,则显示如图(3)所示信息。三、试做步骤和参考代码【主要参考代码】1)界面设计 2)服务定义public class mathservice extends

29、 service private final ibinder mbinder = new localbinder(); public class localbinder extends binder mathservice getservice() return mathservice.this; override public ibinder onbind(intent intent) toast.maketext(this, 本地绑定: mathservice, toast.length_short).show(); return mbinder; override public bool

30、ean onunbind(intent intent) toast.maketext(this, 取消本地绑定:mathservice, toast.length_short).show(); return false; 15 public long add(long a, long b) return a+b; public long sub(long a, long b) return a-b; public long mul(long a, long b) return a*b; public double div(long a, long b) return (double)a/(do

31、uble)b; 3)服务注册 4)主要逻辑代码public class mainactivity extends activity private mathservice mathservice; private boolean isbound = false; textview addlable,sublable,mullable,divlable; override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.activ

32、ity_main); addlable = (textview)findviewbyid(r.id.label1); sublable = (textview)findviewbyid(r.id.label2); mullable = (textview)findviewbyid(r.id.label3); divlable = (textview)findviewbyid(r.id.label4); button bindbutton = (button)findviewbyid(r.id.bind); button unbindbutton = (button)findviewbyid(r

33、.id.unbind); button computbutton = (button)findviewbyid(rpute); bindbutton.setonclicklistener(new view.onclicklistener() override public void onclick(view v) if(!isbound) final intent serviceintent = new intent(mainactivity.this,mathservice.class); 16 bindservice(serviceintent,mconnection,context.bi

34、nd_auto_create); isbound = true; ); unbindbutton.setonclicklistener(new view.onclicklistener() override public void onclick(view v) if(isbound) isbound = false; unbindservice(mconnection); mathservice = null; ); computbutton.setonclicklistener(new view.onclicklistener() override public void onclick(

35、view v) if (mathservice = null) addlable.settext(未绑定服务 ); sublable.settext(); mullable.settext(); divlable.settext(); return; long a = math.round(math.random()*100); long b = math.round(math.random()*100); long addresult = mathservice.add(a, b); string msg = string.valueof(a)+ + +string.valueof(b)+ = +string.valueof(addresult); addlable.set

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论