




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Android課程講義智能手機開發(fā)2010.06.1浙江高校計算機學(xué)院5、數(shù)據(jù)存取智能手機開發(fā)2010.06.2浙江高校計算機學(xué)院數(shù)據(jù)存取Android有四種方式:SharePreference輕量級鍵-值方式存儲,以XML文件方式保存。文件接受java.io.*庫所供應(yīng)有I/O接口,讀寫文件。SQLit數(shù)據(jù)庫SQLite是輕量級嵌入式內(nèi)置數(shù)據(jù)庫。ContentProviderContentProvider可為數(shù)據(jù)封裝,為多個應(yīng)用共享。2010.06.3浙江高校計算機學(xué)院1、SharedPreferences創(chuàng)建以鍵值<StringKey,StringValue>方式加入數(shù)據(jù)以StringKey為索引來取出數(shù)據(jù)清除SharedPreferencessettings =this.getSharedPreferences("Demo",MODE_PRIVATE);SharedPreferences.Editoreditor=settings.edit();editor.putString("name",“value”);editormit();Stringstr=settings.getString("name","");editor.clear()mit();XML文件名2010.06.4浙江高校計算機學(xué)院SharedPreferences存入XML后的內(nèi)容書目:/data/data/<包>/shared_prefs/***.xmlXML文件名2010.06.5浙江高校計算機學(xué)院IntentAndroid中供應(yīng)了Intent機制來幫助應(yīng)用間的交互與通訊,或者接受更精確的說法是,Intent不僅可用于應(yīng)用程序之間,也可用于應(yīng)用程序內(nèi)部的Activity/Service之間的交互。與簡潔函數(shù)/方法調(diào)用,或者通過庫調(diào)用接口的方式不太一樣。在Intent的運用中你看不到干脆的函數(shù)調(diào)用,相對函數(shù)調(diào)用來說,Intent是更為抽象的概念,利用Intent所實現(xiàn)的軟件復(fù)用的粒度是Activity/Service,比函數(shù)復(fù)用更高一些,另外耦合也更為松散。2010.06.6浙江高校計算機學(xué)院2、文件存取文件用來存儲大數(shù)量的數(shù)據(jù)接受java.io.*庫所供應(yīng)有I/O接口,讀寫文件。只有本地文件可以被訪問優(yōu)點:可以存儲大容量的數(shù)據(jù)缺點:文件更新或是格式變更可能會導(dǎo)致巨大的編程工作2010.06.7浙江高校計算機學(xué)院文件操作(讀)讀文件Context.openFileInput(Stringname)打開一個與應(yīng)用程序聯(lián)系的私有文件輸入流當(dāng)文件不存在時拋出FileNotFoundException異樣FileInputStreamin=this.openFileInput(“rt.txt");//打開文件“rt.txt"……in.close();//關(guān)閉輸入流2010.06.8浙江高校計算機學(xué)院文件操作(寫)寫文件Context.openFileOutput(Stringname,intmode)開啟一個與應(yīng)用程序聯(lián)系的私有文件輸出流當(dāng)文件不存在時該文件將被創(chuàng)建文件輸出流可以在添加模式中打開,這意味新的數(shù)據(jù)將被添加到文件的末尾FileOutputStreamout=this.openFileOutput(“wt.txt",MODE_APPEND);//打開文件“wt.txt"進行寫操作、運用MODE_APPEND在添加模式中打開文件……out.close();//關(guān)閉輸出流2010.06.9浙江高校計算機學(xué)院讀取靜態(tài)文件要打開打包在應(yīng)用程序中的靜態(tài)文件,運用Resources.openRawResource(R.raw.mydatafile)該文件必需放在文件夾res/raw/中InputStreamin=this.getResources().openRawResource(R.raw.my);… //獲得Context資源in.close(); //關(guān)閉輸入流2010.06.10浙江高校計算機學(xué)院把文件存放在SDCard訪問SDCard,須要申請訪問SDCard的權(quán)限。在AndroidManifest.xml中加入訪問SDCard的權(quán)限如下:<!--在SDCard中創(chuàng)建與刪除文件權(quán)限--><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!--往SDCard寫入數(shù)據(jù)權(quán)限--><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>2010.06.11浙江高校計算機學(xué)院SDCard讀寫要進行SDCard讀寫,必需先推斷手機是否裝有SDCard,并且可以進行讀寫。if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){FilesdCardDir=Environment.getExternalStorageDirectory();//獲得SDCard書目FilesaveFile=newFile(sdCardDir,“itcast.txt”);FileOutputStreamoutStream=newFileOutputStream(saveFile);outStream.write("Android開發(fā)".getBytes());outStream.close();}2010.06.12浙江高校計算機學(xué)院3、SQLite數(shù)據(jù)庫編程在某些狀況下,文件不是有效的假如多線程數(shù)據(jù)訪問是相關(guān)的假如應(yīng)用程序處理可能變更的困難數(shù)據(jù)結(jié)構(gòu)等等內(nèi)置SQLite數(shù)據(jù)庫支持數(shù)據(jù)庫對于創(chuàng)建它們的包套件是私有的數(shù)據(jù)庫不應(yīng)當(dāng)用來存貯文件SQLite是一個輕量級的軟件庫原子量性堅實性獨立性耐久性體積大小只用幾千字節(jié)一些SQL的指令只是部分支持,例如:ALTER、TABLE2010.06.13浙江高校計算機學(xué)院SQLite數(shù)據(jù)庫Android供應(yīng)了一個名為SQLiteDatabase的類,該類封裝了一些操作數(shù)據(jù)庫的API,運用該類可以完成對數(shù)據(jù)進行添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(這些操作簡稱為CRUD)。2010.06.14浙江高校計算機學(xué)院SQLiteDatabase的execSQL()和rawQuery()方法。execSQL()方法:可以執(zhí)行insert、delete、update和CREATETABLE之類有更改行為的SQL語句;rawQuery()方法:可以執(zhí)行select語句。execSQL()方法的運用例子:SQLiteDatabasedb=....;db.execSQL("insertintoperson(name,age)values('Android開發(fā)',4)");db.close();2010.06.15浙江高校計算機學(xué)院創(chuàng)建數(shù)據(jù)庫Context.createDatabase(Stringname,intversion,intmode,CursorFactoryfactory)創(chuàng)建一個新的數(shù)據(jù)庫并返回SQLiteDatabase對象假如不能被創(chuàng)建,則拋出FileNotFoundExceptionSQLiteDatabasemydataBase=SQLiteDatabase.create(newCursorFactory(){ //創(chuàng)建一個數(shù)據(jù)庫 //工廠類,當(dāng)查詢時調(diào)用來實例化一個光標(biāo)@OverridepublicCursornewCursor(SQLiteDatabasedb,SQLiteCursorDrivermasterQuery,StringeditTable,SQLiteQueryquery){//TODOAuto-generatedmethodstubreturnnull;}});2010.06.16浙江高校計算機學(xué)院創(chuàng)建數(shù)據(jù)庫創(chuàng)建新的數(shù)據(jù)庫SQLiteDatabasemyDataBase=this.openOrCreateDatabase("myDataBase.db",MODE_PRIVATE,newCursorFactory(){//創(chuàng)建新的數(shù)據(jù)庫,名稱myDatabase,模式MODE_PRIVATE,鼠標(biāo)工廠//工廠類,一個可選工廠類,當(dāng)查詢時調(diào)用來實例化一個光標(biāo)@OverridepublicCursornewCursor(SQLiteDatabasedb,SQLiteCursorDrivermasterQuery,StringeditTable,SQLiteQueryquery){//TODOAuto-generatedmethodstubreturnnull;}});2010.06.17浙江高校計算機學(xué)院4、運用ContentProvider共享數(shù)據(jù)當(dāng)應(yīng)用繼承ContentProvider類,并重寫該類用于供應(yīng)數(shù)據(jù)和存儲數(shù)據(jù)的方法,就可以向其他應(yīng)用共享其數(shù)據(jù)。雖然運用其他方法也可以對外共享數(shù)據(jù),但數(shù)據(jù)訪問方式會因數(shù)據(jù)存儲的方式而不同,如:接受文件方式對外共享數(shù)據(jù),須要進行文件操作讀寫數(shù)據(jù);接受sharedpreferences共享數(shù)據(jù),須要運用sharedpreferencesAPI讀寫數(shù)據(jù)。而運用ContentProvider共享數(shù)據(jù)的好處是統(tǒng)一了數(shù)據(jù)訪問方式。第一步須要繼承ContentProvider并重寫下面方法:publicclassPersonContentProviderextendsContentProvider{publicbooleanonCreate()publicUriinsert(Uriuri,ContentValuesvalues)publicintdelete(Uriuri,Stringselection,String[]selectionArgs)publicintupdate(Uriuri,ContentValuesvalues,Stringselection,String[]selectionArgs)publicCursorquery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder)publicStringgetType(Uriuri)}2010.06.18浙江高校計算機學(xué)院運用ContentProvider共享數(shù)據(jù)其次步須要在AndroidManifest.xml運用<provider>對該ContentProvider進行配置,為了能讓其他應(yīng)用找到該ContentProvider,ContentProvider接受了authorities(主機名/域名)對它進行唯一標(biāo)識,可以把ContentProvider看作是一個網(wǎng)站,authorities就是網(wǎng)站域名:<mani
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中級經(jīng)濟師考試的資源配置試題及答案
- 工程成本管理標(biāo)準試題及答案
- 2025年市政工程決策能力試題及答案
- 2025成都商鋪租賃合同模板
- 提升理解力的市政工程試題及答案
- 公共關(guān)系學(xué)的變革與未來發(fā)展方向題目及試題及答案
- 2025年中級經(jīng)濟師的政策效果試題及答案
- 項目決策分析工具試題及答案
- 2025年技術(shù)秘密轉(zhuǎn)讓與貿(mào)易合作生產(chǎn)合同書范本
- 公共關(guān)系與品牌溝通的案例分享試題及答案
- 果蔬罐頭加工課件
- 酒店網(wǎng)評分提升方案
- 采購管理教學(xué)供應(yīng)商管理和招標(biāo)采購課件
- 《也是冬天-也是春天》
- 安全生產(chǎn)與破窗理論
- 創(chuàng)新創(chuàng)業(yè)大賽路演課件
- 蘇少版四年級美術(shù)全冊知識點歸納
- 2020年7月大學(xué)英語英語四級考試真題組合卷
- 供應(yīng)鏈運營與生產(chǎn)交付管理教材
- 妊娠合并垂體侏儒的護理查房
- 幼兒體重控制知識講座
評論
0/150
提交評論