智能終端軟件開發(fā)實驗_第1頁
智能終端軟件開發(fā)實驗_第2頁
智能終端軟件開發(fā)實驗_第3頁
智能終端軟件開發(fā)實驗_第4頁
智能終端軟件開發(fā)實驗_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1 實驗一: android 用戶界面( 1)一、實驗?zāi)康?. 熟悉 android 應(yīng)用程序開發(fā)環(huán)境的構(gòu)建過程,了解android 應(yīng)用程序的文件結(jié)構(gòu),學(xué)會進(jìn)行android應(yīng)用程序開發(fā)。2. 理解 android 用戶界面的基本概念,掌握textview 、edittext 、 button 、imagebutton 、checkbox、radiobutton 、spinner 、listview等常用控件的使用。3. 了解 android 系統(tǒng)的 6種界面布局,掌握線性布局、框架布局、表格布局、相對布局、絕對布局、網(wǎng)格布局等界面布局的使用。二、實驗內(nèi)容開發(fā)如圖所示的android 應(yīng)用程

2、序。功能及要求。1) 在edittext中輸入數(shù)據(jù),當(dāng)點擊input 按鈕時,把輸入的信息在testview 上顯示;2) 當(dāng)選擇 checkbox1時,在testview 上顯示 “ checkbox1被選中”; 當(dāng)選擇 checkbox2時, 在testview上顯示“checkbox2被選中”; 當(dāng)checkbox1和checkbox2均被選中時, 在testview 上顯示“checkbox1和checkbox2被選中”;3) 當(dāng)選擇 radiobutton1 時,在testview 上顯示“ radiobutton1 被選中”;當(dāng)選擇radiobutton2時,在 testview

3、上顯示“ radiobutton1 被選中”;radiobutton1 和radiobutton2 不能同時被選中;4) 點擊 close 時,關(guān)閉應(yīng)用程序。三、試做步驟和參考代碼1. 構(gòu)建實驗環(huán)境1)下載 adt-bundle-windows-x86-20130917.467161976(集成 android4.3版本);2)安裝 jdk;3)注冊環(huán)境變量。2. 創(chuàng)建新的 android 程序過程1)打開 android 工程向?qū)В?file new project android android project;2)填寫工程名稱、選擇程序運(yùn)行的android 系統(tǒng)版本、填寫應(yīng)用程序名稱3)

4、點擊“ finish ”按鈕,工程向?qū)鶕?jù)用戶所填寫的android 工程信息,自動在后臺創(chuàng)建android工程所需要的基礎(chǔ)文件和目錄結(jié)構(gòu)。3. 編程實現(xiàn)實驗內(nèi)容【主要參考代碼】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)監(jiān)聽事件 checkbox監(jiān)聽: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監(jiān)聽: 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監(jiān)聽: 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. 按時到指定實驗室進(jìn)行實驗;2. 學(xué)生應(yīng)獨立完成android 程序開發(fā)平臺的搭建;3. 會創(chuàng)建新的 android 應(yīng)用程序及編輯已創(chuàng)建的android 應(yīng)用程序;4. 完成實驗內(nèi)容要求的andr

10、oid 應(yīng)用程序五、實驗報告實驗報告應(yīng)包含以下內(nèi)容:1. 實驗?zāi)康模?. 實驗內(nèi)容;3.android 應(yīng)用程序創(chuàng)建過程(工程名字用本人的姓或班內(nèi)序號+experiment1 組成);4. 給出主要的程序代碼,如界面布局文件、邏輯代碼文件等中的實現(xiàn)代碼。5. 在報告中給出程序運(yùn)行界面;6. 應(yīng)有必要的總結(jié)和分析。5 實驗二: android 用戶界面( 2)一、實驗?zāi)康?. 掌握菜單資源的使用,能夠編程實現(xiàn)選項菜單、子菜單和快捷菜單。2. 了解操作欄和 fragment 的基本概念和使用方法。3. 熟悉 mvc 模型中的控制器概念和界面事件,能夠處理單擊事件、按鍵事件、觸摸事件等界面事件的處理

11、。二、實驗內(nèi)容開發(fā)如圖所示的android 應(yīng)用程序。(1)(2)(3)功能及要求。1) 圖( 1)所示為程序的初始界面,給出使用在xml 文件中定義和邏輯代碼動態(tài)生成兩種菜單定義方法的實現(xiàn)代碼;2) 定義菜單的的點擊事件,該事件的處理過程是:若某個菜單子項被選中,在textview 控件顯示該菜單子項的名稱和菜單id;3) 圖( 2)所示是使用 xml 文件方法實現(xiàn)菜單定義時,點擊“打印”子項時的用戶界面;4) 圖( 3)所示是使用邏輯代碼動態(tài)生成方法實現(xiàn)菜單定義時,點擊“打印”子項時的用戶界面。三、試做步驟和參考代碼【主要參考代碼】1)xml 實現(xiàn)方法 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, 設(shè)置 ).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、設(shè)置,菜單 id: + item.getitemid(); return true; case menu_04: label.settext(訂閱,菜單 id: + item.getitemid(); return true; default: return false; 四、實驗要求1. 按時到指定實驗室進(jìn)行實驗;7 2. 完成實驗內(nèi)容要求的android 應(yīng)用程序五、實驗報告實驗報告應(yīng)包含以下內(nèi)容:1. 實驗?zāi)康模?. 實驗內(nèi)容;3.android 應(yīng)用程序創(chuàng)建過程(工程名字用本人的姓或班內(nèi)序號+experiment2 組成);4. 給出主要的程序代碼,如界面布局文件、菜單定義文件、邏輯代

16、碼文件等中的實現(xiàn)代碼。5. 在報告中給出程序運(yùn)行界面;6. 應(yīng)有必要的總結(jié)和分析。8 實驗三: intent 及組件通信一、實驗?zāi)康?. 了解使用 intent進(jìn)行組件通信的原理。2. 掌握使用 intent啟動 activity的方法。3. 掌握獲取 activity返回值的方法。二、實驗內(nèi)容開發(fā)如圖所示的android 應(yīng)用程序。(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 用于提示當(dāng)前activity是子activity, edittext 用于輸入返回父activity的信息,點擊“接受”button 則關(guān)閉 subactivity1并把輸入信息返回,點擊“撤銷”button 則直接關(guān)閉 subactivity1;3) 當(dāng)有信息從子 activity返回時,父 activity接收返回信息并把它顯示在textview 控件上;4) subact

18、ivity2包含 1個textview 、 1個button , textview 用于提示當(dāng)前 activity是子 activity, button則直接關(guān)閉 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. 按時到指定實驗室進(jìn)行實驗;2. 完成實驗內(nèi)容要求的android 應(yīng)用程序五、實驗報告實驗報告應(yīng)包含以下內(nèi)容:1. 實驗?zāi)康模?. 實驗內(nèi)容;3.android 應(yīng)用程序創(chuàng)建過程(工程名字用本人的姓或班內(nèi)序號+experiment3

27、組成);4. 給出主要的程序代碼,如界面布局文件、菜單定義文件、邏輯代碼文件等中的實現(xiàn)代碼。5. 在報告中給出程序運(yùn)行界面;6. 應(yīng)有必要的總結(jié)和分析。13 實驗四: service及后臺服務(wù)一、實驗?zāi)康?. 了解 service 的原理和用途,掌握本地服務(wù)的管理方法。2. 掌握服務(wù)的隱式啟動和顯式啟動方法。3. 了解線程的啟動、掛起和停止方法,了解跨線程的界面更新方法。二、實驗內(nèi)容開發(fā)如圖所示的android 應(yīng)用程序。(1)(2)(3)功能及要求。1)圖( 1)為程序的初始界面,設(shè)計4個textview 和3個button 2)點擊“服務(wù)綁定”button ,則將已定義好的“mathser

28、vice ”服務(wù)綁定到本進(jìn)程(“mathservice ”服務(wù)的功能是提供“+、- 、* 、/ ”四個運(yùn)算);3)點擊“取消綁定”button ,則將“mathservice ”服務(wù)與本進(jìn)程的綁定取消;4)點擊“數(shù)學(xué)運(yùn)算”button ,則首先生成兩個0-100 的隨機(jī)數(shù),然后分別計算這兩個數(shù)的和、差、積和商,并分別顯示在4個textview 上;若點擊“數(shù)學(xué)運(yùn)算”button 時,“ mathservice ”服務(wù)未被綁定或已經(jīng)解除了綁定,則顯示如圖(3)所示信息。三、試做步驟和參考代碼【主要參考代碼】1)界面設(shè)計 2)服務(wù)定義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)服務(wù)注冊 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(未綁定服務(wù) ); 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論