Android開發(fā)文檔_第1頁
Android開發(fā)文檔_第2頁
Android開發(fā)文檔_第3頁
Android開發(fā)文檔_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、Android Dev DocAndroid 開發(fā) 多使用內(nèi)部類 使用方便且效率高UI方面的知識一、 在編寫layout的xml文件時,一定要仔細(xì)!如果在報錯的時候,如何解決?解決:將xml仔細(xì)檢查并保存后再運行。二、 在運行程序時,還未運行onCreate()方法之前就報錯(MyAndroid(Project)!原因:在用eclipse 新建的項目的AndroidManifest.xml 文件中的application節(jié)點中android:lable寫了。去掉后就無錯。(待驗證!)三、 onCreateContextMenu - 創(chuàng)建長按菜單鍵 顯示的菜單!處理菜單選擇事件方法- onCon

2、textItemSelected四、 在對數(shù)據(jù)庫操作時,一定要記住open.五、 Fragments 類似于Activity 生命周期有點類似。一個Activity中可以有很多個Fragments,一個Fragments可以被多個Activity使用,要實現(xiàn)Fragments也必須去跟Activity一樣去集成父類。六、 兩種方式將Layout中的XML轉(zhuǎn)換為View1. LayoutInflater inflater = (強(qiáng)轉(zhuǎn))getSystemService(Context.LAYOUT_INFLATER_SERVICE) inflater.inflater(layoutId,null)

3、;2. LayoutInflater inflater = LayoutInflater.from(this);final View textEntryView = inflater.inflate(R.layout.alert_dialog_text_entry, null);七、 Dialog的機(jī)制 :當(dāng)Activity中調(diào)用showDialog(int id)時會去回調(diào)onCreateDialog() 回調(diào)執(zhí)行完畢后執(zhí)行onPrepareDialog()。八、 利用線程來實現(xiàn)ProgressBar 1. 新建一個匿名類實現(xiàn)Runable接口,run方法里面來for循環(huán)progressBa

4、r的max value2. 在for內(nèi)利用android.os.Handler類的實例的post方法來對progressBar實例的操作(其中post的參數(shù)又是一個Runable的實現(xiàn)類-利用匿名類來實現(xiàn)run方法,在方法內(nèi)對progressBar的實例操作)。-注意:progressbar 的max越大越能看出效果。九、 得到NotificationManager 以及Notification的使用1. 在Activity中 nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);2. new Notificatio

5、n(顯示圖片的ID,顯示的文本,Notification顯示的時間)3. Notification的使用步驟:A. 所有的Notification都是由NotificationManager來管理的,因此必須得到NotificationManager的實例B. 構(gòu)造一個Notification(注意setLatestEventInfo這個方法是用來:1:當(dāng)展開Notification時如何呈現(xiàn)Notification 2:當(dāng)用戶單擊時如何處理Notification)C. 利用NotificationManager的實例來啟動Notification4.十、 D數(shù)據(jù)存儲的操作一、 數(shù)據(jù)存儲的3

6、中方式1. SharedPreferences 方式 會以xml存在data/data/XXX.xml中2. 文件存儲 (要在程序當(dāng)中讀取文件那么文件應(yīng)該放在res/raw用以下方式獲得:Resources res = getResources(); res.openRawResource(R.raw.xxx) 即可)3. SQLite存儲方式二、 利用ContentValues 來存儲到數(shù)據(jù)庫1. ContentValues cv = new ContentValues(); cv.putXXX(Key,Value)2. Xx.insert(TableName,cv.)三、 利用Conten

7、tProvider實現(xiàn)跨程序訪問(由于Android系統(tǒng)中的數(shù)據(jù)都是私有的)1. 新建一個日記類 當(dāng)中含有內(nèi)部類實現(xiàn)了BaseColumns接口(該內(nèi)部類中包含了很多字段URI 等等),該日記類包含了授權(quán)字段,授權(quán)的字段必須跟以下類注冊的provider要保持一致2. 新建一個子類去繼承ContentProvider 重寫它的onCreate(),query,insert,update,getType 等方法,并且在AndroidManifest.xml文件中進(jìn)行注冊。四、 使用WebServices1. 在Manifest.xml文件中賦予權(quán)限 Android.permission.INTE

8、RNET2. 以POST的方式發(fā)送請求3. 以HttpRespone 接受返回值。五、 在創(chuàng)建數(shù)據(jù)表的時候,必須包含_id字段。如果未包含,必須升級數(shù)據(jù)庫或者刪除表重新建。OnUpgrade()方法升級。程序開發(fā)步驟一、 實現(xiàn)UI二、 數(shù)據(jù)存儲和操作三、 實現(xiàn)多頁面跳轉(zhuǎn)四、 增加Service五、 完善細(xì)節(jié)六、 應(yīng)用測試finishActivity(RESULT_OK)不能結(jié)束當(dāng)前的activity,只有調(diào)用finish()才能。為什么我不調(diào)用startManagingCursor()方法也可以取出數(shù)據(jù)。當(dāng)查詢的Cursor只有一個結(jié)果的時候,需要調(diào)用moveToFrist()方法,要不會拋出

9、數(shù)組下標(biāo)異常android.database.CursorIndexOutOfBoundsException: Index -1實現(xiàn)GoogleMap一、 需要com.google.map.(jar 包)二、 在CMD下利用Java的keytool.exe 生成API KEY a) keytool list alias androiddebugkey keystore “debug.keystore的路徑 如:C:Documents and SettingsAdministrator.android”b) 提示輸入密碼,輸入:Android c) Copy 產(chǎn)生的key三、 在Google網(wǎng)站

10、上申請API KEY a) 進(jìn)入:b) 輸入上步得到的MD5認(rèn)證KEYc) 點擊Generate API Keyd) 得到申請到的API Key四、 使用getSharedPreferences方法的注意事項a) 此方法是Context的一個方法,如果需要得到文件必須context要在manifest.xml文件中進(jìn)行注冊了的才會得到對象。要不會拋null異常五、 使用BaseAdapter的注意事項a) 在使用adapter時,方法的getCount必須返回size(否則顯示不出)b) getView()方法在首次加載的時候參數(shù)converView是nullc) 調(diào)用notifyDataSe

11、tChanged()方法來針對改變了list來更新view六、 使用AIDL (Android Interface Description Language) 進(jìn)行不同進(jìn)程之間的通信七、 AlertDialog的使用a) 在設(shè)置多個Button的時候不能使用同樣的方法setButton();b) 必須使用setButton2要不然會覆蓋掉前面的。八、 DAndroid技術(shù)點(面試)一、 Android 線程之間通信方式有幾種:a) Handler (如果在子線程當(dāng)中實例化Handler前必須創(chuàng)建消息隊列Looper.prepare(),實例化完畢后調(diào)用Looper.loop()啟動消息隊列,不

12、用的時候quite()隊列)b)二、 如果有多個Activity 如何來全部結(jié)束(4中方式)a) Process.killProcess(Process.myPid();System.exit(0);b) ActivityManager am = (ActivityManager)getSystemService (ACTIVITY_SERVICE); am.restartPackage(getPackageName(); 必須在Manifest.xml申明權(quán)限:android.permission.RESTART_PACKAGESc) 我們知道Android的窗口類提供了歷史棧,我們可以通過

13、stack的原理來巧妙的實現(xiàn), 這里我們在A窗口打開B窗口時在Intent中直接加入標(biāo)志 Intent.FLAG_ACTIVITY_CLEAR_TOP,這樣開啟B時將會清除該進(jìn)程空間的所有Activity。 在A窗口中使用下面的代碼調(diào)用B窗口Intent intent = new Intent(); intent.setClass(Android123.this,CWJ.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); /注意本行的FLAG設(shè)置startActivity(intent);接下來在B窗口中需要退出時直接使用finish

14、 方法即可全部退出。d) 利用單例模式來管理全部的activity. 點擊查看三、 Android的MVC 體現(xiàn)到哪里a) M:res/values下生成,也可以通過代碼獲得 (V 通過Adapter 與M互相連接)b) V: Layout /下的xml生成也可同過代碼生成。c) C:Activity四、 Android中存儲數(shù)據(jù)的幾種方式a) 使用SharePreferences 存儲(使用SharedPreferences是有些限制的:只能在同一個包內(nèi)使用,不能在不同的包之間使用。)b) 文件存儲c) SQLited) 使用ContentProvidere) 網(wǎng)絡(luò)存儲五、 如何解決Android中sdcard存儲文件的限制a) 加入兩個權(quán)限:android

溫馨提示

  • 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

提交評論