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

付费下载

下载本文档

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

文档简介

实验一:Android顾客界面(1)

一、实验目的

1.熟悉Android应用程序开发环境的构建过程,理解Android应用程序的文献构造,学会进行Android

应用程序开发。

2.理解Android顾客界面的基本概念,掌握TcxtVicw、EditTcxt,Button^ImagcButton^Checkbox>

RadioButton、Spinner、ListView等常用控件的使用。

3.理解Android系统的6种界面布局,掌握线性布局、框架布局、表格布局、相对布局、绝对布局、网格布

局等界面布局的使用。

二、实验内容

开发如图所示的Android应用程序。⑹Expreimentl

功能及规定。

Helloworld!

1)在EditTcxu|i输入数据,当点Null击Input按钮时,

-------------------------------▲

把谕入的信息在TestView上显示;CheckBoxlRadioButton

AA

2)当选择CheckBoxl时,在CheckBox2RadioButtonTeslView上显

示“CheckBoxl被选中";当选择CheckBox2Input时,在

TcstV'icw上显示“ChcckBox2被选中”;当CheckBoxl和

CLose

LI_____i

CheckBox2均被选中时,在TeslView上显示**CheckBoxl

和CheckBox2被选中”;

3)当选择RadioButtonl时,在TestView上显示“RadioButtonl被选中”;当选择RadioButto12时,在

TostViow上显示“RadioButtonl被选中“;RadioButtonl和RadioButton2不能同步被选中;

4)点击Close时,关闭应用程序,

三、试做环节和参照代码

1.构建实验环境

1)下载adt-bundle-windo\vs-x86-()917.(集成Android4.3版本);

2)安装JDK;

3)注册环境变量。

2.创立新的Android程序过程

1)打开Android工程向导:File-*Ne\v—Project…|Android-*AndroidProject;

2)填写工程名称、选择程序运营的Android系统版本、填写应用程序名称

3)点击“Finish”按钮,工程向导会根据顾客所填写的Android工程信息,自动在后台创立Android

工程所需要的基本文献和目录构造。

3.编程实现实验内容

【重要参照代码】

1)界面布局

<?xmlversion="l.0"encoding=/,utf-8*?>

<LinearLayoutxmlns:android="”

android:orientation=,vertica1”

android:layoutwidth=z,fillparent*

android:layout_height=,/fill_parent/,>

<TextViewandroid:id="@+id/TextView01”

android:layout_width=/,wrap_content/,

android:layout_height=z,wrap_content,/

android:text="TextViewOl”>

</TextView>

<EditTextandi'oid:id="@+id/EditText01”

android:layout_width二〃fi1l_parent”

cindroid:layout_height="wrap_content”

android:text=*Nu11*>

</EditText>

<CheckBoxandroid:id="@+id/CheckBox01”

android:1ayout_width=/,wrap.content^

android:layoutheight="wrapcontent”

android:text=,zCheckBoxOl,z>

</CheckBox>

<CheckBoxandroid:id="@+id/CheckBox02〃

android:1ayoutwidth=,,wrapcontent”

android:layoutheight="wrap_content〃

android:text="CheckBox02”>

</CheckBox>

<RadioGroupandroid:id=/,@+id/RadioGroupO1

android:1ayout_width=/,wrap_contcnt”

android:layout_height=,/wrap_content”>

<RadioButtonandroid:id="@+id/RadioButtonOl”

android:1ayoutwidth=*wrap_content”

android:layout_height="wrap_content”

android:text="RadioButtonOl”>

</RadioButton>

<RadioButtonandroid:id="@+id/RadioButton02"

android:layoul_widlh="wrap_conlenl”

android:layout_height=^wrap_content〃

android:text=",RadioButton02,z>

</RadioButton>

</RadioGroup>

<Buttonandroid:id="0+id/Button01〃

android:layout_width=/,wrap_contcntz,

android:layoutheight="wrap_content”

android:text="Input”>

</Button>

<Buttonandroid:id="@+id/Button02”

android:layout_\vidth="wrap_content”

android:layout_height="wrap_content”

android:text="Close”>

</Button>

</LincarLayout>

2)获取各控件ID

finalTextViewtextView=(TextView)findViewById(R.id.TextViewOl);

finalEditTexieditTcxt=(EditTexi)findViewByTd(R.id.EditText01);

finalCheckBoxchecKBoxl=(CheckBox)findViewJyld(R.id.CheckBoxOl);

finalCheckBoxchcckBox2=(CheckBox)findViewById(R.id.CheckBox02);

finalRadioButtonradioButtonl=(RadioButton)findViewById(R.id.RadioButtonOl):

finalRadioButtonradioButton2=(RadioButton)findViewByld(R.id.RadioButton02);

Buttonbutton1=(Button)findViewById(R.id.ButtonOl);

Buttonbutton2=(Button)findVicwByld(R.id.Button02);

3)监听事件

CheckBox监听:

CheckBox.OnClickListenercheckboxListener=newCheckBox.OnClickListener(){

©Override

publicvoidonClick(Viewv){

switch(v.getldO){

caseR.id.CheckBoxOl:

textView.setText("CheckBoxOl,

isChecked:,?+String.valueOf(checkBoxl.isCheckedO));

return;

caseR.id.CheckBox02:

textView.setText(,,CheckBox02,

isChecked:,Z+String.valueOf(checkBox2.isCheckedO));

return;

)

}};

RadioButton监听:

RadioButton.OnClickListenerrcidioButtonListener=new

RadioButton.OnClickListoner(){

0Override

publicvoidonClick(Viewv){

switch(v.getld()){

caseR.id.RadioButtonOl:

textView.setText(^RadioButtonlisselected");

return;

caseR.id.RadioButton02:

textView.setTextC,RadioButton2isselected");;

return;

)

}};

radioButtonl.setOnClickListener(radioButtonListener);

rcidioButton2.setOnClickListener(rcidioButtonListener);

Button监听:

Buttonl.setOnClickListener(newView.OnClickListener(){

publicvoidonClick(Viewview){

Stringmsg=editText.getTextO.toStringO;

textView.setText(msg);

)

});

Button2.setOnClickListener(newView.OnClickListener(){

pub1icvoidonClick(Viewvicw){

finishO;

)

});

四、实验规定

1.准时到指定实验室进行实验;

2.学生应独立完毕Android程序开发平台的搭建;

3.会创立新的Android应用程序及编辑已创立的Android应用程序;

4.完毕实验内容规定的Android应用程序

五、实验报告

实验报告应涉及如下内容:

1.实验目的;

2.实验内容;

3.Android应用程序创立过程(工程名字用本人的姓或班内序号+Experimentl构成);

4.给出重要的程序代码,如界面布局文献、逻辑代码文献等中的实现代码。

5.在报告中给出程序运营界面;

6.应有必要的总结和分析。

实验二:Android顾客界面(2)

一、实验目的

1.掌握菜单资源的使用,可以编程实现选项菜单、子菜单和快捷菜单。

2.理解操作栏和Fragment的基本概念和使用措施。

3.熟悉UVC模型中的控制器概念和界面事件,可以解决单击事件、按键事件、触摸事件等界面事件的解决。

二、实验内容

开发如图所示的Android应用程序。

le«oWoMMenuResourceAclivity!HEO.R«ID:2131099649HED.«*10:1

打印打印打印

新建新建

邮件邮件邮件

ifil设置设置

订阅订阅订阅

(1)(2)(3)

功能及规定。

1)图(1)所示为程序的初始界面,给出使用在XML文献中定义和逻辑代码动态生成两种菜单定义措

施的实现代码;

2)定义菜单的的点击事件,该事件的解决过程是:若某个菜单子项被选中,在TextVie”控件显示

该菜单子项的名称和菜单ID;

3)图(2)所示是使用XML文献措施实现菜单定义时,点击“打印”子项时的顾客界面;

4)图(3)所示是使用逻辑代码动态生成措施实现菜单定义时,点击“打印”子项时的顾客界面。

三、试做环节和参照代码

【重要参照代码】

1)XML实现措施

<?xmlversion="1.0"encoding="utf-8”?>

<menuxmlns:android=/,,/>

<itemandroid:id=*@+id/mainmenuO^

android:icon=*6drawab1e/picO”

android:title="打印"/>

<itemandroid:id=z,@+id/main_menu_1z,

android:icon=,,@drawab1c/pic1”

android:title="新建"/>

<itemandroid:id="@+id/mainmenu2”

android:icon="@drawable/pic2”

android:title="邮件"/>

<itemandroid:id="@+id/main_menu_3〃

android:icon="@drawab1e/pic3”

android:title="设立”/>

<itemandroid:id=z,@+id/main_menu_4z,

android:icon=〃@dra\vable/pic4,/

android:title—订阅”/>

</menu>

2)获取各控件ID

finalstaticintMENUOOMenu.FIRST;

finalstaticintMENL1_O1=Menu.FIRST+1:

finalstaticintMENU02Menu.FIRST+2;

finalstaticintMENU03Menu.FIRST+3;

finalstaticintMENU_04=Menu.FIRST+4;

publicbooleanonCreateOptionsMenu(Menumenu){

menu,add(0,MENU00,0,"打‘印").setIcon(R.drawatle.picO);

menu.add(0,MENU_01,1,〃新建〃).setIcon(R.drawatle.picl);

menu,add(0,MENU_02,2,〃邮件").setlcon(R.drawatle.pic2);

menu.add(0,MENU03,3,"设立").setIcon(R.drawatle.pic3);

menu,add(0,MENU04,4,〃订阅〃).setIcon(R.drawatle.pic4);

returntrue;

}

3)逻辑代码

publicbooleanonOptionsItemSe1ected(MenuItemitem){

TextViewlabel=(TextVicw)findViewByTd(R.id.label);

switch(item,getltemld()){

caseMENU_00:

label.setText("打印,菜单ID:"+item,getltemld());

returntrue;

caseMENU01:

label.setText(〃新建,菜单ID:〃+item.getltemldO);

returntrue;

caseMENU_02:

label.setText(“邮件,菜单ID:〃+item.getltemldO);

returntrue;

caseMENU_03:

label.setText("设立,菜单ID:"+item.getltemldO);

returntrue;

caseMENU_04:

label.setText("订阅,菜单ID:"+item.getltemldO);

returntrue;

default:

returnfalse;

)

}

四、实验规定

1.准时到指定实验室进行实验;

2.完毕实验内容规定的Android应用程序

五、实验报告

实验报告应涉及如下内容:

1.实验目的;

2.实验内容;

3.Android应用程序创立过程(工程名字用本人的姓或班内序号+Expcrimcnt2构成);

4.给出重要的程序代码,如界面布局文献、菜单定义文献、逻辑代码文献等中的实现代码。

5.在报告中给出程序运营界面;

6.应有必要的总结和分析。

实验二:Intent及组件通信

一、实验目的

1.理解使用Intent进行组件通信的原理。

2.掌握使用握tent启动Activity的措施。

3.掌握获取Activity返回值的措施。

二、实验内容

开发如图所示的Android应用程序。

(1)(2)(3)

功能及规定。

1)图(1)为程序的初始界面(父Activity),其重要功能是提供1个TcxtVicw和两个Button,点击

“启动Activity1”则启动图(2)所示的SubActivityl(子Activity),点击“启动Activity?”则启动

图(3)所示的SubActivity2(子Activity);

2)SubActivityl涉及1个TextView、1个EditText和两个Button,TextView用于提示目前Activity是

子Activity,EditText用于输入返回父Activity的信息,点击“接受"Button则关闭SubActivityl并把输

入信息返回,点击"撤销"Button则直接关闭SubActivityl;

3)当有信息从了,Activity返回时,父Activity接受返回信息并把它显示在TextView控件上;

4)SubActivity2涉及1个TextView、"'Button,TextView用于提示目前Activity是子Activity,Button

则直接关闭SubActivity2o

三、试做环节和参照代码

【重要参照代码】

1)父Activity

<?xmlversion.1.0"encoding=

<LinearLayoutxmlns:android:”"

android:orientation=zvertica1”

android:layout_width="fill_parcnt”

android:layout_heighl=/,fi1l_parent/,

>

<TextView

android:id="@+id/tcxtSho'v"

android:layout_width=,,fi1l_parent,/

android:layoutheight="wrapcontent”

android:text=**

/>

<Button

android:id=*@+id/btnl*

android:1ayoutwidth="wrap_content”

android:1ayout_height=,,wrap_content

android:text="启动Activity/

/>

<Button

android:id="@+id/btn2”

android:layout_width=,/wrapcontent”

android:layout_height=,,wrap_content/,

android:text="启动Activity2”

/>

</LinearLayout>

2)SubActivityl

<?xmlvcrsion=〃l.0"encoding=,,utf-8,,?>

<LinearLayoutxm1ns:android=z,z,

android:orientalion-vertical”

android:layoutwidth=,,fi1l_parent,,

android:layout_height=z,fi11.parent”

>

<TextView

android:id=〃@+id/iextShow”

android:layout_width="zfi1l_parent,,

android:layoutheight="wrapcontent

android:text=/,SubActivity1”

/>

<EditText

android:id=,,@+id/edit,/

android:layoutwidth=,/fi1l_parent,/

android:layoutheight="wrapcontent'

android:text=””

/>

<Button

cindroid:id="@+id/btn_ok〃

android:layoutwidth=〃100dip〃

android:1ayout_height=,,wrap_content'

android:lext=〃接受“

/>

<Button

android:id=,,@+id/btn_cancel?,

android:layout_width=〃100dip”

android:layoutheight=,,wrap_content,

android:text="撤销"

/>

/>

</LinearLciyout>

3)SubActivity2

<?xmlversion=*l.0,zencoding=/,utf-8,,?>

<LinearLayoutxm1ns:android=””

android:orientation二〃vertical〃

android:layoutwidth=,,fi1l_parcnt

android:layout_height=,,fi1l_parent,,

>

<TextView

android:id="@+id/textShow”

android:1ayoutwidth二〃filIparent〃

android:1ayout_height=/,wrap_contcnt,/

android:text="SubActivity2”

/>

<Button

android:id=,,@+id/btn_return,/

android:layoutwidth="lOOdip”

cindroid:layout_height=,,wrcip_content”

android:text="关闭”

/>

</LinearLayout>

4)子Activity注册

<activityandroid:label=,,@string/appname,,

android:namc=".SubActivity1〃>

</activity>

<activityandroid:1cibel=,,@string/appname^

android:name=,/.SubActivity2〃>

</activity>

4)SubActivityl定义

publicclassSubActivitylextendsActivity{

Override

publicvoidonCreate(BundlesavedlnstanceState){

super.onCreate(savedlnstanceState);

setContentView(R.layout,subactivityl);

finalEditTexteditText=(EditText)findViewDyld(R.id.edit);

ButtonbtnOK="Button)findViewById(R.id.btnok);

ButtonbtnCance'=(Button)findViewById(R.id.btn_cancel);

btnOK.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewview){

StringuriString=editText.getText().toStringO;

Uridata=Uri.parse(uriString);

Intentresult=newIntent(null,data);

setResult(RESULT_OK,result);

finish();

)

t);

btnCanccl.setOnClickListcncr(newOnClickListcncrO{

publicvoidonClick(Viewview){

setResult(RESULT_CANCELED,null);

finishO;

}

});

}

)

5)SubActivity2定义

publicclassSubActivity2extendsActivity{

./*.Calle,whe.th.activit.i.firs,created.*/

©Override

publicvoidonCreatc(Bundlesaved!nstanceState){

super.onCreate(savedlnstanceState);

sctContentView(R.layout.subactivity2);

ButtonbtnReturn=(Button)findViewByld(R.id.btnreturn);

btnRcturn.sctOnClickListcncr(newOnClickListcncrO{

publicvoidonClick(Viewview){

setResull(RESULT_CANCELED,null);

finish();

)

});

}

)

6)重要逻辑代码

publicclassActivityConmunicationActivityextendsActivity{

privatestaticfinalintSL-BACTIVITYl=1;

privatestaticfinalintSUBACTTVTTY2=2;

TextViewtextView;

../*.Calle,whe.th.activit.i.firs,created.*/

@Override

publicvoidonCreate(BundlesavedinstanceState){

super.onCreate(savedlnstanceState);

setContentView(R.layout,main);

textView=(TextView)findViewByld(R.id.textShow);

finalButtonbtnl=(Button)findViewByld(R.id.btnl);

finalButtonbtn2=(Button)findViewByld(R.id.btn2);

btnl.setOnClickListener(newOnClickListencr(){

pub1icvoidonC1ick(Viewview){

Intentintent=newIntent(ActivityCommunicationActivity.this,

SubActivityl.class);

startActivityForResult(intent,SUBACTIVITY1);

}

});

btn2.sctOnClickListener(newOnClickListencr(){

publicvoidonClick(Viewview){

Intentintent=newIntent(ActivityCommunicationActivity.this,

SubActivity2.class);

startActivityForResult(intent,SUBACTTVTTY2);

}

});

)

@Override

protectedvoidonActivityResult(intrequestCcde,intresultCode,Intentdata){

super.onActivityResult(requestCode,resultCode,data);

switch(requestCode){

caseSUBACTIVITY1:

if(resultCode==RESULT_OK){

UriuriData=data.getDataO;

textView.setText(uriData.toStringO);

)

break;

caseSUBACTIVITY2:

break;

)

1

四、实验规定

1.准时到指定实验室进行实验;

2.完毕实验内容规定的Android应用程序

五、实验报告

实验报告应涉及如下内容:

1.实验目的;

2.实验内容;

3.Android应用程序创立过程(工程名字用本人的姓或班内序号+ExDerimenl3构成):

4.给出重要的程序代码,如界面布局文献、菜单定义文献、逻辑代码文献等中的实现代码。

5.在报告中给出程序运营界面;

6.应有必要的总结和分析。

实验四:Service及后台服务

一、实验目的

1.理解Service的原理和用途,掌握本地服务的管理措施。

2.掌握服务的隐式启动和显式启动措施。。

3.理解线程的启动、挂起和停止措施,理解跨线程的界面更新措施。

二、实验内容

开发如图所示的Android应用程序。

(1)(2)(3)

功能及规定。

1)图(1)为程序的初始界面,设计4个TextView和3个Button

2)点击“服务绑定"Button,则将已定义好的“MathService”服务绑定到本进程(aMathServiceM

服务的功能是提供“+、-、*、/"四个运算);

3)点击“取消绑定"Button,则将“MathService”服务与本进程的绑定取消;

4)点击“数学运算”Button,则一方面生成两个0T00的随机数,然后分别计算这两个数的利、差、积和

商;并分别显示在4个TextView上;若点击“数学运算”Button时,uMathServicew服务未被绑定或已经

解除了绑定,则显示如图(3)所示信息。

三、试做环节和参照代码

【重要参照代码】

1)界面设计

<?xnilversion="1.0"encoding="utf-8"?>

<LincarLayoutxinlns:android=""

android:orienlation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

<TcxtVicwandroid;id="@+id/liibcl1"

android:layout_width="fill_parcnt"

android:layout_height="wrap_content"

android:text="addResult">

</TextView>

<TcxtVicvvandroid:id="@+id/labcl2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text=',subResult,,>

</TextView>

<Tex(Viewandroid:id="@+id/label3,'

android:layout-width="fill_parent"

android:kiyout_hcight="wrap_contcnt”

android:lext="mulResult">

</TextView>

<TextVievvandroid:id="@+id/label4"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="divResult">

</TextView>

<Buttonandroid:id="@+id/bind"

android:layoul_width="wrap_content"

android:layout_height="wrap_content"

android:tnxt="服务绑定”>

</Button>

<Buttonandroid:id='@+id/unbind"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:iex[="取消绑定")

</Button>

<Buttonandroid:id="@+id/compute"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="数学运算”>

</Button>

</LinearLayout>

2)服务定义

publicclassMathScrviceextendsService{

privatefinalIBindermBinder=newLocalBinder();

publicclassLocalBinderextendsBinder{

MathServicegetSer\ice(){

returnMathService.this;

@Ovcrridc

publicIBinderonBind(Imentintent){

Toast.makeText(thi$,“本地绑定:MathService",

Toast.LENGTH_SHORT).show();

returnmBinder;

I

©Override

publicbooleanonllnbindilntcntintcnt){

Toast.makeTexl(this,”取消本地绑定:MathService",

Toast.LENGTH_SHORT).show();

returnfalse;

)

publiclongAdd(longa,longb){

returna+b;

1

publiclongSub(longa,longb){

returna-b;

1

publiclongMul(longa,longb){

returna*b;

)

publicdoubleDiv(longa,longb){

return(double)a/(double)b;

)

I

3)服务注册

<serviceandroid:name=".MathService'7>

4)重要逻辑代码

publicclassMainActivityextendsActivity{

privateMathServicemathService;

privatebooleanisBound=false;

TextViewaddLable,subLable,niulLable,divLable;

@Override

publicvoidonCreate(Bun(JlesavedlnstanceState){

supcr.onCrcatc(savcdlnstanccStcUc);

sctContcntVicw(R.layout.activity_main);

addLable=(TextView)findViewByld(R.id.labelI);

subLable=(TextView)findViewById(R.id.label2);

mulLablc=(TextView)findViewByld(R.id.labeB);

divLable=(TextView)findViewById(R.id.label4);

ButtonbindButton=(Button)findViewByld(R.id.bind);

ButtonunbindButton=(Button)findViewByld(R.id.unbind);

ButtoncomputButton=(Button)findViewByld(R.pute);

bindButton.setOnClickListener(newView.OnClickListener()(

@Ovcrridc

publicvoidonClick(Viewv){

if(!isBound){

finalIntentserviceintent=newIntent(MainActivity.this,MathService.class);

bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);

isBound=true;

)

)

});

unbindButton.se(OnClickListener

温馨提示

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

评论

0/150

提交评论