版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一: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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- H5N1禽流感病人护理
- 2025年河北省邢台市临西县数学三年级第二学期期中质量检测试题含解析
- 2025年河北省石家庄市藁城区实验学校数学四下期末综合测试试题含解析
- 2025年河北省北京师范大学沧州渤海新区附属学校三年级数学第二学期期中复习检测试题(含答案)
- 法学在线试题及答案
- 腹外疝护理知识测试题目及答案
- DB54-T 0689-2026设施蔬菜秸秆还田技术规程
- DB43-T 3457-2025快速磁浮交通建设工程概(预)算编制办法及定额
- 广西桂林市2026年数学中考模拟试卷附答案
- 探秘唐筛:试题与标准答案大公开
- 水杨酸焕肤课件
- 高压旋喷桩地基施工要点
- 原发性高血压中医辨证施治
- DB5328-T 42-2025 东试早柚生产技术规程
- 2025年新西师大版数学三年级上册全册课件
- 新疆喀拉通克矿业有限责任公司-冶炼部分环境影响后评价环评报告
- T/CGCC 23-2018奢侈品鉴定技术规范
- 器件应力降额及关键用法规范
- 2.1世界的物质性 课件-2024-2025学年高中政治统编版必修四哲学与文化
- 游乐设备设计中的人体工程学应用
- 高中数学必修二(人教A版2019)课后习题答案解析
评论
0/150
提交评论