版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2/101西安郵電大學(xué)《移動(dòng)電子商務(wù)技術(shù)》上機(jī)實(shí)驗(yàn)報(bào)告學(xué)院名稱:經(jīng)濟(jì)與管理學(xué)院學(xué)生姓名:專業(yè)班級(jí):電子商務(wù)1101學(xué)號(hào):0211200X提交時(shí)間:2014年6月26日目錄實(shí)驗(yàn)一Android開(kāi)發(fā)環(huán)境及工具 3一、實(shí)驗(yàn)?zāi)康?3二、實(shí)驗(yàn)時(shí)間:2014-3-24 4三、實(shí)驗(yàn)內(nèi)容及步驟 4四、實(shí)驗(yàn)結(jié)果分析及總結(jié) 9實(shí)驗(yàn)二Android應(yīng)用程序開(kāi)發(fā)基礎(chǔ) 9一、實(shí)驗(yàn)?zāi)康?9二、實(shí)驗(yàn)時(shí)間:2014-3-24 9三、實(shí)驗(yàn)內(nèi)容及步驟 9四、實(shí)驗(yàn)結(jié)果分析及總結(jié) 14實(shí)驗(yàn)三Android生命周期 15一、實(shí)驗(yàn)?zāi)康?15二、實(shí)驗(yàn)時(shí)間:2014—4--18 15三、實(shí)驗(yàn)內(nèi)容及步驟 15四、實(shí)驗(yàn)結(jié)果分析及總結(jié) 20實(shí)驗(yàn)四Android用戶界面 20一、實(shí)驗(yàn)?zāi)康?20二、實(shí)驗(yàn)時(shí)間:2014—5--15 21三、實(shí)驗(yàn)內(nèi)容及步驟 21四、實(shí)驗(yàn)結(jié)果分析及總結(jié) 59實(shí)驗(yàn)五組件通信與廣播消息 60一、實(shí)驗(yàn)?zāi)康?60二、實(shí)驗(yàn)時(shí)間:2014—5--18 60三、實(shí)驗(yàn)內(nèi)容及步驟 60四、實(shí)驗(yàn)結(jié)果分析及總結(jié) 77實(shí)驗(yàn)六后臺(tái)服務(wù) 77一、實(shí)驗(yàn)?zāi)康?77二、實(shí)驗(yàn)時(shí)間:2014—5--28 77三、實(shí)驗(yàn)內(nèi)容及步驟 77四、實(shí)驗(yàn)結(jié)果分析及總結(jié) 106實(shí)驗(yàn)七數(shù)據(jù)存儲(chǔ)與訪問(wèn) 106一、實(shí)驗(yàn)?zāi)康?106二、實(shí)驗(yàn)時(shí)間:2014--6--18 106三、實(shí)驗(yàn)內(nèi)容及步驟 106四、實(shí)驗(yàn)結(jié)果分析及總結(jié) 143實(shí)驗(yàn)一Android開(kāi)發(fā)環(huán)境及工具一、實(shí)驗(yàn)?zāi)康恼莆誂ndroid開(kāi)發(fā)環(huán)境的安裝與配置方法。了解AndroidSDK的目錄結(jié)構(gòu)和示例程序。了解Android主要開(kāi)發(fā)工具。二、實(shí)驗(yàn)時(shí)間:2014-3-24三、實(shí)驗(yàn)內(nèi)容及步驟(一)安裝JDK和EclipsewiththeADTPlugin1.JDK雙擊安裝,然后對(duì)java的開(kāi)發(fā)環(huán)境進(jìn)行配置:設(shè)置環(huán)境變量創(chuàng)建“Path”變量名,添加JDK安裝目錄中“bin”文件夾路徑;創(chuàng)建“CLASSPATH”變量,添加JDK安裝目錄中“l(fā)ib”以及“demo”的路徑;最后進(jìn)行測(cè)試是否安裝成功。2.打開(kāi)站點(diǎn):/sdk/index.html,下載安裝系統(tǒng)對(duì)應(yīng)的EclipsewiththeADTPlugin。(二)安裝不同版本AndroidSDK及工具1.(1)打開(kāi)存放SDK的文件夾,如下圖示:(2)雙擊SDKManager,會(huì)出現(xiàn)下圖所示安裝目錄,選擇要安裝的Android版本及工具(3)安裝成功后,所有安裝包的狀態(tài)欄(Status)將從Notinstalled更改為Installed。(三)學(xué)習(xí)安裝ADT及設(shè)置AndroidSDK保存路徑的方法1.安裝ADT至少有三種方法,下面只用其中的一種方法。(1)打開(kāi)站點(diǎn):/sdk/installing/installing-adt.html,下載ADT插件包。頁(yè)面如下:(2)按照上面的步驟進(jìn)行安裝即可:?jiǎn)?dòng)Eclipse,選擇Help→InstallNewSoftware,打開(kāi)Eclipse的插件安裝界面,點(diǎn)擊“Add”如下圖。其中Name:ADTPluginLocation:/android/eclipse/在ADT插件安裝前,會(huì)提示用戶對(duì)需要安裝的插件進(jìn)行選擇和確認(rèn),如下圖:安裝結(jié)束后會(huì)提示重啟Eclipse,完成下載安裝。2.設(shè)置AndroidSDK的保存路徑,選擇:Window→Preferences打開(kāi)Eclipse的配置界面,輸入AndroidSDK的保存路徑,點(diǎn)擊“Apply”,如下圖:四、實(shí)驗(yàn)結(jié)果分析及總結(jié)實(shí)驗(yàn)一中,出現(xiàn)的問(wèn)題及解決方法:在安裝ADT插件時(shí),一直出現(xiàn)問(wèn)題,用第一種方法—在eclipse中輸入插件地址,由eclipse自動(dòng)下載安裝,由于訪問(wèn)不到網(wǎng)址,決定換第二種方法,即:手動(dòng)下載安裝包,在eclipse中直接安裝,但是還是沒(méi)有安裝成功。最后,在同學(xué)的幫助下將ADT插件壓縮包解壓縮后的文件直接復(fù)制到eclipse中,成功安裝完畢。實(shí)驗(yàn)二Android應(yīng)用程序開(kāi)發(fā)基礎(chǔ)一、實(shí)驗(yàn)?zāi)康恼莆帐褂肊clispse開(kāi)發(fā)Android應(yīng)用程序的過(guò)程和方法。掌握Android虛擬設(shè)備(AVD)的創(chuàng)建和使用方法。了解Android的程序結(jié)構(gòu)及各目錄文件的用途和功能。二、實(shí)驗(yàn)時(shí)間:2014-3-24三、實(shí)驗(yàn)內(nèi)容及步驟(一)建立第一個(gè)Android程序HelloAndroid啟動(dòng)Eclipse建立Android工程,工程名稱和目錄結(jié)構(gòu)將顯示在PackageExplorer區(qū)域內(nèi),如下圖。打開(kāi)Android工程向?qū)В篎ile→New→Project…︱Android→AndroidProject或File→New→Other…︱Android→AndroidProjec,如下圖。3.在Projectname中填寫工程名稱:HelloAndroid,可以創(chuàng)建新Android工程,也可利用已有代碼創(chuàng)建Android工程,新建的工程被保存在缺省的工作空間中,也可以取消“Usedefaultlocation”的復(fù)選框,選擇其它位置保存Android工程,如下圖。4.如下圖所示,點(diǎn)擊finish即可所建工程如圖所示:(二)建立一個(gè)用于調(diào)試運(yùn)行程序的Android虛擬設(shè)備(AVD)1.在Eclipse中:Window→AVDManager啟動(dòng)AVD管理器,在AVD管理器點(diǎn)擊“New”,打開(kāi)AVD創(chuàng)建界面如下圖:2.點(diǎn)擊New進(jìn)行創(chuàng)建,如下圖所示:3.點(diǎn)擊OK后出現(xiàn)以下界面:選中新建項(xiàng)目,點(diǎn)擊Start,即可打開(kāi)AVD界面,如下圖:如下圖所示:四、實(shí)驗(yàn)結(jié)果分析及總結(jié)實(shí)驗(yàn)二中沒(méi)有多大問(wèn)題,就是android虛擬機(jī)開(kāi)啟速度非常慢,影響做實(shí)驗(yàn)的速度。實(shí)驗(yàn)三Android生命周期一、實(shí)驗(yàn)?zāi)康睦斫釧ndroid系統(tǒng)管理程序組件生命周期。了解Activity的生命周期中各狀態(tài)的變化關(guān)系。掌握Activity事件回調(diào)函數(shù)的作用和調(diào)用順序。掌握Android應(yīng)用程序的調(diào)試方法和工具。二、實(shí)驗(yàn)時(shí)間:2014—4--18三、實(shí)驗(yàn)內(nèi)容及步驟(一)建立程序ActivityLifeCycle,并觀察此程序運(yùn)行結(jié)果,理解Activity生命周期狀態(tài)的變化關(guān)系及事件回調(diào)函數(shù)的調(diào)用順序啟動(dòng)Eclipse建立ActivityLifeCycle工程。2.在工程中建立或編輯布局資源文檔res\layout\main.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:id="@+id/textview"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello_world"/><Buttonandroid:id="@+id/btn_finish"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="結(jié)束程序"/></LinearLayout>3.在工程中建立或編輯Java源代碼,參考代碼如下:packageedu.hrbeu.ActivityLifeCycle;importandroid.app.Activity;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.Button;publicclassActivityLifeCycleextendsActivity{privatestaticStringTAG="LIFTCYCLE";@Override//完全生命周期開(kāi)始時(shí)被調(diào)用,初始化ActivitypublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Log.i(TAG,"(1)onCreate()");Buttonbutton=(Button)findViewById(R.id.btn_finish);button.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewview){finish();}});}@Override//可視生命周期開(kāi)始時(shí)被調(diào)用,對(duì)用戶界面進(jìn)行必要的更改publicvoidonStart(){super.onStart();Log.i(TAG,"(2)onStart()");}@Override//在onStart()后被調(diào)用,用于恢復(fù)onSaveInstanceState()保存的用戶界面信息publicvoidonRestoreInstanceState(BundlesavedInstanceState){super.onRestoreInstanceState(savedInstanceState);Log.i(TAG,"(3)onRestoreInstanceState()");}@Override//在活動(dòng)生命周期開(kāi)始時(shí)被調(diào)用,恢復(fù)被onPause()停止的用于界面更新的資源publicvoidonResume(){super.onResume();Log.i(TAG,"(4)onResume()");}@Override//在onPause()后被調(diào)用,保存界面信息publicvoidonSaveInstanceState(BundlesavedInstanceState){super.onSaveInstanceState(savedInstanceState);Log.i(TAG,"(5)onSaveInstanceState()");}@Override//在重新進(jìn)入可視生命周期前被調(diào)用,載入界面所需要的更改信息publicvoidonRestart(){super.onRestart();Log.i(TAG,"(6)onRestart()");}@Override//在活動(dòng)生命周期結(jié)束時(shí)被調(diào)用,用來(lái)保存持久的數(shù)據(jù)或釋放占用的資源publicvoidonPause(){super.onPause();Log.i(TAG,"(7)onPause()");}@Override//在可視生命周期結(jié)束時(shí)被調(diào)用,用來(lái)釋放占用的資源publicvoidonStop(){super.onStop();Log.i(TAG,"(8)onStop()");}@Override//在完全生命周期結(jié)束時(shí)被調(diào)用,釋放資源,包括線程、數(shù)據(jù)連接等publicvoidonDestroy(){super.onDestroy();Log.i(TAG,"(9)onDestroy()");}}4.程序界面如下圖。點(diǎn)擊“結(jié)束程序”按鈕后,會(huì)出現(xiàn)以下界面:
查看LogCat輸出結(jié)果,觀察Activity完全生命周期事件回調(diào)函數(shù)調(diào)用順序。單擊“+”,添加過(guò)濾器,填入過(guò)濾器的名稱:LIFTCYCLE,設(shè)置過(guò)濾條件為“標(biāo)簽=LIFTCYCLE”,如下圖。(2)查看LogCat輸出結(jié)果如下:(3)Activity完全生命周期事件回調(diào)函數(shù)調(diào)用順序?yàn)椋簅nCreateonStartonResumeonPauseonStoponDestroyonCreateonStartonResumeonPauseonStoponDestroy啟動(dòng)ActivityLifeCycle,按“撥號(hào)鍵”啟動(dòng)內(nèi)置的撥號(hào)程序,再通過(guò)“返回鍵”退出撥號(hào)程序,使用ActivityLifeCycle重新顯示在屏幕中。查看LogCat輸出結(jié)果,觀察Activity可視生命周期事件回調(diào)函數(shù)調(diào)用順序。Activity可視生命周期事件回調(diào)函數(shù)調(diào)用順序:onCreateonStartonResumeonPauseonStoponDestroyonCreateonStartonResumeonPauseonStoponDestroyonCreateonStartonResumeonPauseonSaveInstanceStateonStoponRestartonStartonResume開(kāi)啟IDA的可視生命周期:DevTools→DevelopmentSettings→Immediatelydestroyactivities(IDA)下開(kāi)啟IDA。9.再次啟動(dòng)ActivityLifeCycle,按“撥號(hào)鍵”啟動(dòng)內(nèi)置的撥號(hào)程序,再通過(guò)“返回鍵”退出撥號(hào)程序,使用ActivityLifeCycle重新顯示在屏幕中。10.查看開(kāi)啟IDA的可視生命周期的函數(shù)調(diào)用順序,并觀察與開(kāi)啟IDA前后的差異。四、實(shí)驗(yàn)結(jié)果分析及總結(jié)實(shí)驗(yàn)三沒(méi)有太大的問(wèn)題,就是要熟悉理解Android系統(tǒng)管理程序組件生命周期,了解Activity的生命周期中各狀態(tài)的變化關(guān)系。比較難掌握Activity事件回調(diào)函數(shù)的作用和調(diào)用順序和掌握Android應(yīng)用程序的調(diào)試方法和工具。實(shí)驗(yàn)四Android用戶界面一、實(shí)驗(yàn)?zāi)康牧私飧鞣N常用用戶界面的控件的使用方法。掌握各種界面布局的使用方法。掌握菜單(選項(xiàng)菜單、子菜單、快捷菜單)的使用方法。掌握操作欄和Fragment的使用方法。掌握按鍵事件和觸摸事件的處理方法。二、實(shí)驗(yàn)時(shí)間:2014—5--15三、實(shí)驗(yàn)內(nèi)容及步驟(一)建立程序TextViewDemo,掌握控件TextView和EditText的基本用法啟動(dòng)Eclipse建立TextViewDemo工程。在工程中建立或編輯布局資源文檔res\layout\main.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="TextView01"/><EditTextandroid:id="@+id/EditText01"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="EditText01"/></LinearLayout>3.在工程中建立或編輯Java源代碼,參考代碼如下:package.hrbeu.textviewdemo;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.EditText;importandroid.widget.TextView;publicclassTextViewDemoextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);TextViewtextView=(TextView)findViewById(R.id.TextView01);EditTexteditText=(EditText)findViewById(R.id.EditText01);textView.setText("用戶名:");editText.setText("Rajan");}}調(diào)試程序,觀察運(yùn)行結(jié)果。(二)建立程序ButtonDemo,掌握控件Button和ImageButton的基本用法啟動(dòng)Eclipse建立ButtonDemo工程。在工程中建立或編輯布局資源文檔res\layout\main.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/TextView01"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello_world"/><Buttonandroid:id="@+id/Button01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button01"/><ImageButtonandroid:id="@+id/ImageButton01"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>引入資源,將ImageButton的圖片download.png文件拷貝到/res/drawable文件夾下,在/res目錄上選擇Refresh。在工程中建立或編輯Java源代碼,參考代碼如下:調(diào)試程序,觀察運(yùn)行結(jié)果。packageedu.hrbeu.ButtonDemo;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importandroid.widget.ImageButton;importandroid.widget.TextView;publicclassButtonDemoActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Buttonbutton=(Button)findViewById(R.id.Button01);ImageButtonimageButton=(ImageButton)findViewById(R.id.ImageButton01);button.setText("Button按鈕");imageButton.setImageResource(R.drawable.a);finalTextViewtextView=(TextView)findViewById(R.id.TextView01);//(1)按鈕注冊(cè)到各自的監(jiān)聽(tīng)器button.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewview){textView.setText("Button按鈕");}});imageButton.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewview){textView.setText("ImageButton按鈕");}});//(2)按鈕注冊(cè)到同一個(gè)監(jiān)聽(tīng)器//Button.OnClickListenerbuttonListener=newButton.OnClickListener(){// @Override// publicvoidonClick(Viewv){// switch(v.getId()){// caseR.id.Button01:// textView.setText("Button按鈕");// return;// caseR.id.ImageButton01:// textView.setText("ImageButton按鈕");// return;// } // }};// // button.setOnClickListener(buttonListener);// imageButton.setOnClickListener(buttonListener); }}調(diào)試程序,觀察運(yùn)行結(jié)果。點(diǎn)擊Button按鈕時(shí),會(huì)出現(xiàn)如下圖所示:點(diǎn)擊圖片按鈕時(shí),會(huì)出現(xiàn)如下圖所示:(三)建立程序CheckboxRadiobuttonDemo,掌握控件CheckBox和RadioButton的基本用法啟動(dòng)Eclipse建立CheckboxRadiobuttonDemo工程。2.在工程中建立或編輯布局資源文檔res\layout\main.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/TextView01"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello_world"/><CheckBoxandroid:id="@+id/CheckBox01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="CheckBox01"/><CheckBoxandroid:id="@+id/CheckBox02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="CheckBox02"/><RadioGroupandroid:id="@+id/RadioGroup01"android:layout_width="wrap_content"android:layout_height="wrap_content"><RadioButtonandroid:id="@+id/RadioButton01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="RadioButton01"/><RadioButtonandroid:id="@+id/RadioButton02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="RadioButton02"/></RadioGroup></LinearLayout>3.在工程中建立或編輯Java源代碼,參考代碼如下:packageedu.hrbeu.CheckboxRadiobuttonDemo;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.CheckBox;importandroid.widget.RadioButton;importandroid.widget.TextView;publicclassCheckboxRadiobuttonDemoextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);finalTextViewtextView=(TextView)findViewById(R.id.TextView01);//(1)CheckBoxfinalCheckBoxcheckBox1=(CheckBox)findViewById(R.id.CheckBox01);finalCheckBoxcheckBox2=(CheckBox)findViewById(R.id.CheckBox02);CheckBox.OnClickListenercheckboxListener=newCheckBox.OnClickListener(){ @Override publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.CheckBox01: textView.setText("CheckBox01是否選中:"+String.valueOf(checkBox1.isChecked())); return; caseR.id.CheckBox02: textView.setText("CheckBox02是否選中:"+String.valueOf(checkBox2.isChecked())); return; } }}; checkBox1.setOnClickListener(checkboxListener); checkBox2.setOnClickListener(checkboxListener); //(2)RadioButtonfinalRadioButtonradioButton1=(RadioButton)findViewById(R.id.RadioButton01);finalRadioButtonradioButton2=(RadioButton)findViewById(R.id.RadioButton02);RadioButton.OnClickListenerradioButtonListener=newRadioButton.OnClickListener(){ @Override publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.RadioButton01: textView.setText("RadioButton1isselected"); return; caseR.id.RadioButton02: textView.setText("RadioButton2isselected");; return; } }}; radioButton1.setOnClickListener(radioButtonListener); radioButton2.setOnClickListener(radioButtonListener);}}4.調(diào)試程序,觀察運(yùn)行結(jié)果。(1)點(diǎn)擊CheckBox01時(shí),界面上顯示CheckBox01被選中(2)取消CheckBox01,點(diǎn)擊CheckBox02時(shí),界面上顯示CheckBox01未被選中(3)取消CheckBox02,點(diǎn)擊CheckBox01,CheckBox02時(shí),界面上顯示CheckBox02被選中總結(jié):界面上顯示的信息的結(jié)果,是最后一個(gè)響應(yīng)的結(jié)果(4)點(diǎn)擊RadioButton01時(shí),顯示RadioButton01被選中,同理,點(diǎn)擊RadioButton02時(shí),顯示RadioButton02被選中(五)建立程序ListViewDemo,掌握控件ListView的基本用法啟動(dòng)Eclipse建立ListViewDemo工程。在工程中建立或編輯布局資源文檔res\layout\main.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/TextView01"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello_world"/><ListViewandroid:id="@+id/ListView01"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>3.在工程中建立或編輯Java源代碼,參考代碼如下:packageedu.hrbeu.ListViewDemo;importjava.util.ArrayList;importjava.util.List;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.ListView;importandroid.widget.TextView;publicclassListViewDemoextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);finalTextViewtextView=(TextView)findViewById(R.id.TextView01);ListViewlistView=(ListView)findViewById(R.id.ListView01);List<String>list=newArrayList<String>();list.add("ListView子項(xiàng)1");list.add("ListView子項(xiàng)2");list.add("ListView子項(xiàng)3");ArrayAdapter<String>adapter=newArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);listView.setAdapter(adapter); AdapterView.OnItemClickListenerlistViewListener=newAdapterView.OnItemClickListener(){ @Override publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){ Stringmsg="父View"+arg0.toString()+"\n"+ "子View"+arg1.toString()+"\n"+ "位置:"+String.valueOf(arg2)+"ID:"+String.valueOf(arg3); textView.setText(msg); }}; listView.setOnItemClickListener(listViewListener);}}運(yùn)行結(jié)果:(六)建立程序TabDemo和TabDemo2,掌握使用TabActivity實(shí)現(xiàn)Tab標(biāo)簽頁(yè)的方法啟動(dòng)Eclipse建立TabDemo工程。在工程res\layout\目錄下分別建立或編輯標(biāo)簽分頁(yè)的布局資源文檔tab1.xml、tab2.xml和tab3.xml,參考代碼如下在工程中建立或編輯Java源代碼,參考代碼如下:實(shí)驗(yàn)結(jié)果如下圖所示:線性布局:絕對(duì)布局:相對(duì)布局:?jiǎn)?dòng)Eclipse建立TabDemo2工程。在工程res\layout\目錄下分別建立或編輯主程序及標(biāo)簽分頁(yè)的布局資源文檔main.xml、tab1.xml、tab2.xml和tab3.xml,main.xml參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><TabHostxmlns:android="/apk/res/android"android:id="@android:id/tabhost"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:padding="5dp"><TabWidgetandroid:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content"/><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"android:padding="5dp"/></LinearLayout></TabHost>tab1.xml、tab2.xml和tab3.xml代碼和TabDemo2工程中tab1.xml、tab2.xml和tab3.xml代碼相同7.在工程中分別建立或編輯主程序及標(biāo)簽分頁(yè)程序的Java源代碼TabDemo2Activity.java、Tab1Activity.java、Tab2Activity.java和Tab3Activity.java,下圖是新建的Tab3Activity.javaTabDemo2Activity.java參考代碼如下:packageedu.hrbeu.tabdemo2;importandroid.app.TabActivity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.widget.TabHost;@SuppressWarnings("deprecation")publicclassTabDemo2extendsTabActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);TabHosttabHost=getTabHost();tabHost.addTab(tabHost.newTabSpec("TAB1"). setIndicator("線性布局").setContent(newIntent().setClass(this,Tab1Activity.class)));tabHost.addTab(tabHost.newTabSpec("TAB2"). setIndicator("絕對(duì)布局").setContent(newIntent().setClass(this,Tab2Activity.class)));tabHost.addTab(tabHost.newTabSpec("TAB3"). setIndicator("相對(duì)布局").setContent(newIntent().setClass(this,Tab3Activity.class)));}}Tab1Activity.java參考代碼如下:packageedu.hrbeu.tabdemo2;importandroid.app.Activity;importandroid.os.Bundle;publicclassTab1ActivityextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.tab1);}}Tab2Activity.java和Tab3Activity.java的源代碼是在Tab1Activity.java的基礎(chǔ)上做修改即可。(七)建立程序LinearLayout,掌握線性布局的基本用法啟動(dòng)Eclipse建立LinearLayout工程。首先刪除Eclipse自動(dòng)建立的/res/layout/main.xml文件。3.建立用于顯示垂直排列線性布局的XML文件,右擊/res/layout文件夾,選擇New→Other..→AndroidXMLFile打開(kāi)XML文件建立向?qū)?,建立的文件名為main_vertical.xml,保存位置為L(zhǎng)inearLayout/res/layout,如下圖。4.雙擊新建立的/res/layout/main_vertical.xml文件,Eclipse將打開(kāi)界面布局的可視化編輯器,如下圖。5.在Eclipse下邊的Outline中,雙擊LinearLayout,打開(kāi)線性布局的屬性編輯器,選擇Orientation的值為vertical,表示該線性布局為垂直排列,將Layoutheight的值設(shè)為wrap_content,Layoutwidth屬性的值設(shè)為fill_parent,如下圖。6.按照TextView、EditText、Button、Button的順序,將4個(gè)界面控件先后拖拽到可視化編輯器中,并根據(jù)需要修改界面控件的屬性,如下圖。打開(kāi)XML文件編輯器,main_vertical.xml文件的代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="TextView"/><EditTextandroid:id="@+id/editText1"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"><requestFocus/></EditText><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/></LinearLayout>將LinearLayout工程改為橫向線性布局,建立main_horizontal.xml文件,線性布局的Orientation屬性的值設(shè)置為horizontal,將EditText的Layoutwidth屬性的值設(shè)置為wrap_content,將LinearLayout.java文件中的setContentView(R.layout.main_vertical)修改為setContentView(R.layout.main_horizontal)。調(diào)試程序,觀察運(yùn)行結(jié)果。(八)用層級(jí)觀察器(HierarchyVeiwer)獲得線性布局的樹(shù)形結(jié)構(gòu)圖,理解框架布局在模擬器上運(yùn)行垂直排列的線性布局示例,在層級(jí)觀察中獲得示例界面布局的樹(shù)型結(jié)構(gòu)圖。(九)建立程序TableLayout,掌握表格布局的基本用法啟動(dòng)Eclipse建立TableLayout工程。向界面中添加一個(gè)表格布局,保留布局的默認(rèn)屬性值,Id屬性為TableLayout01,Layoutwidth和Layoutheight屬性都為wrap_content。在Outline視圖中,在TableLayout01上右擊,選擇AddRow向TableLayout01中添加兩個(gè)TableRow,TableRow代表一個(gè)單獨(dú)的行,每行被劃分為幾個(gè)小的單元,單元中可以添加一個(gè)界面控件,Id屬性分別為TableRow01和TableRow02,Layoutwidth和Layoutheight屬性都為wrap_content。在界面可視化編輯器上,向TableRow01中拖拽TextView和EditText,再向TableRow02中拖拽兩個(gè)Button,如下圖。參考下表設(shè)置TableRow中四個(gè)界面控件的屬性值。編號(hào)類型屬性值1TextViewId@+id/labelText用戶名:GravityrightPadding3dipLayoutwidth160dip2EditTextId@+id/entryText[null]Padding3dipLayoutwidth160dip3ButtonId@+id/okText確認(rèn)Padding3dip4ButtonId@+id/cancelText取消Padding3dip建立表格布局main.xml文件的完整代碼如下:<?xmlversion="1.0"encoding="utf-8"?><TableLayoutandroid:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="/apk/res/android"> <TableRowandroid:id="@+id/TableRow01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextViewandroid:id="@+id/label" android:layout_height="wrap_content" android:layout_width="160dip" android:gravity="right" android:text="用戶名:" android:padding="3dip"> </TextView> <EditTextandroid:id="@+id/entry" android:layout_height="wrap_content" android:layout_width="160dip" android:padding="3dip"> </EditText> </TableRow> <TableRowandroid:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Buttonandroid:id="@+id/ok" android:layout_height="wrap_content" android:padding="3dip" android:text="確認(rèn)"> </Button> <Buttonandroid:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="3dip" android:text="取消"> </Button> </TableRow></TableLayout>6..調(diào)試結(jié)果如下:(十)建立程序RelativeLayout,掌握相對(duì)布局的基本用法啟動(dòng)Eclipse建立RelativeLayout工程。在工程中建立或編輯布局資源文檔res\layout\main.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><AbsoluteLayoutandroid:id="@+id/absolutelayout01"android:layout_width="fill_parent"android:layout_height="fill_parent" xmlns:android="/apk/res/android"> <TextViewandroid:id="@+id/label" android:layout_x="40dip" android:layout_y="40dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="用戶名:"> </TextView> <EditTextandroid:id="@+id/entry" android:layout_x="40dip" android:layout_y="60dip" android:layout_height="wrap_content" android:layout_width="150dip"> </EditText> <Buttonandroid:id="@+id/ok" android:layout_width="70dip" android:layout_height="wrap_content" android:layout_x="40dip" android:layout_y="120dip" android:text="確認(rèn)"> </Button> <Buttonandroid:id="@+id/cancel" android:layout_width="70dip" android:layout_height="wrap_content" android:layout_x="120dip" android:layout_y="120dip" android:text="取消"> </Button></AbsoluteLayout>調(diào)試程序,觀察運(yùn)行結(jié)果。(十二)建立程序GridLayoutDemo,掌握網(wǎng)格布局的基本用法啟動(dòng)Eclipse建立GridLayoutDemo工程。在Eclipse界面設(shè)計(jì)器中按下圖設(shè)計(jì)網(wǎng)格布局的程序界面。運(yùn)行結(jié)果如下:(十三)建立程序MenuResource,掌握使用XML文件菜單資源生成選項(xiàng)菜單的基本方法啟動(dòng)Eclipse建立MenuResource工程。將菜單子項(xiàng)圖標(biāo)圖片文件拷貝到res\drawable目錄下,并在目錄上Refresh。在工程中建立或編輯菜單資源文檔res\menu\main_menu.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?><menuxmlns:android="/apk/res/android"><itemandroid:id="@+id/main_menu_0"android:icon="@drawable/pic0"android:title="打印"/><itemandroid:id="@+id/main_menu_1"android:icon="@drawable/pic1"android:title="新建"/><itemandroid:id="@+id/main_menu_2"android:icon="@drawable/pic2"android:title="郵件"/><itemandroid:id="@+id/main_menu_3"android:icon="@drawable/pic3"android:title="設(shè)置"/><itemandroid:id="@+id/main_menu_4"android:icon="@drawable/pic4"android:title="訂閱"/></menu>4.在工程中建立或編輯Java源代碼,參考代碼如下:packageedu.hrbeu.MenuResource;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.MenuInflater;publicclassMenuResourceActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){MenuInflaterinflater=getMenuInflater();inflater.inflate(R.menu.main_menu,menu);returntrue;}}調(diào)試程序,運(yùn)行結(jié)果:(二十)建立程序FragmentDemo,掌握Fragment組件的基本用法啟動(dòng)Eclipse建立FragmentDemo工程。在工程中建立或編輯Activity的布局資源文檔res\layout\main.xml和兩個(gè)Fragment的布局資源文檔res\layout\frag_a.xml、res\layout\frag_b.xml,參考代碼如下:<?xmlversion="1.0"encoding="utf-8"?>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)加盟合作協(xié)議(2024版)細(xì)則版
- 2025年茶園租賃合同示范文本8篇
- 2024版轎車租借合同:全面保障合同條款版
- 2025年度柴油發(fā)電機(jī)及配件全球采購(gòu)合同范本4篇
- 2024年04月陜西西安銀行金融市場(chǎng)及資產(chǎn)管理業(yè)務(wù)人才招考筆試歷年參考題庫(kù)附帶答案詳解
- 專業(yè)空氣能熱泵熱水器安裝工程協(xié)議規(guī)范文本版B版
- 專業(yè)設(shè)備采購(gòu)銷售協(xié)議:2024版細(xì)則版A版
- 2025年度綠色建筑場(chǎng)調(diào)研與投資評(píng)估服務(wù)合同4篇
- 二零二五年度瓷磚行業(yè)供應(yīng)鏈管理合同3篇
- 2025年環(huán)保設(shè)備產(chǎn)品區(qū)域代理合同4篇
- GB/T 18476-2001流體輸送用聚烯烴管材耐裂紋擴(kuò)展的測(cè)定切口管材裂紋慢速增長(zhǎng)的試驗(yàn)方法(切口試驗(yàn))
- GA 1551.5-2019石油石化系統(tǒng)治安反恐防范要求第5部分:運(yùn)輸企業(yè)
- 拘留所教育課件02
- 沖壓生產(chǎn)的品質(zhì)保障
- 《腎臟的結(jié)構(gòu)和功能》課件
- 2023年湖南聯(lián)通校園招聘筆試題庫(kù)及答案解析
- 上海市徐匯區(qū)、金山區(qū)、松江區(qū)2023屆高一上數(shù)學(xué)期末統(tǒng)考試題含解析
- 護(hù)士事業(yè)單位工作人員年度考核登記表
- 天津市新版就業(yè)、勞動(dòng)合同登記名冊(cè)
- 產(chǎn)科操作技術(shù)規(guī)范范本
- 人教版八年級(jí)上冊(cè)地理全冊(cè)單元測(cè)試卷(含期中期末試卷及答案)
評(píng)論
0/150
提交評(píng)論