版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大話企業(yè)級(jí)Android開(kāi)發(fā)·第十四部本說(shuō)明 《大話企業(yè)級(jí)Adrid開(kāi)發(fā)》是國(guó)士為了方便中國(guó)Andoid開(kāi)發(fā)者,推動(dòng)Andoid企業(yè)級(jí)應(yīng)用開(kāi)發(fā),特投入大量心血撰寫(xiě)的書(shū)籍,并在網(wǎng)絡(luò)上免費(fèi)發(fā)布,希望為移動(dòng)互聯(lián)網(wǎng)和智能時(shí)代貢獻(xiàn)綿薄之力!所有相關(guān)文檔版權(quán)均屬國(guó)士所有。本是由國(guó)士參考文檔,綜合市面相關(guān)書(shū)籍,經(jīng)過(guò)充分的吸收分享,特采用定稿一部分就發(fā)布一部分的連載方式發(fā)布。讀者可以在本博客獲取內(nèi)容。 國(guó)士,將此文檔及其衍生作品以標(biāo)準(zhǔn)(紙質(zhì))書(shū)籍形式本文檔受有關(guān)法律的保護(hù),對(duì)本文檔內(nèi)容的任何同意的和行為,將導(dǎo)致相應(yīng)的。國(guó)士同意,任何團(tuán)體及個(gè)人不能用此牟利,違者。但是:在不收取其他人費(fèi)用的前提下,您可以自由此文檔,但必須保證信息、文檔及其自帶標(biāo)示的完整性。如果對(duì)該文檔有任何疑問(wèn)或者建議,請(qǐng)進(jìn)入博uohdrd士后附聯(lián)系方式《大話企業(yè)級(jí)Android開(kāi)發(fā)》的及完整內(nèi)容會(huì)在國(guó)士博客定期更新,請(qǐng)國(guó)士博客/guoshiandroid/獲取更新內(nèi)容關(guān)于我們(國(guó)士)是一支專注于Adrod平臺(tái)企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的技術(shù)團(tuán)隊(duì),對(duì)多等多戶NS、聯(lián)網(wǎng)發(fā)展提供解決方案和技術(shù)支持,為企業(yè)提供Adrod我們尤其擅長(zhǎng)于提供從Android客戶端到服務(wù)端的一站式解決方案和技術(shù)支持,服務(wù)端可以采用JavaEE,也可以采用輕量級(jí)流行的LAMP技術(shù)體系。目前,研發(fā)出了比KU6、優(yōu)酷更加強(qiáng)大和完善的Android 多客戶端軟目前,我們正在務(wù)實(shí)而卓有成效的與音等多、門戶、SNS、、電子商務(wù)等傳統(tǒng)網(wǎng)絡(luò)服務(wù)商合作,發(fā)展迅速,渴望有志之士的加入,和我們一起為成為世界最好的Android軟件開(kāi)發(fā)和咨詢、培訓(xùn)公司而奮斗,為移動(dòng)互聯(lián)網(wǎng)和智能時(shí)代貢獻(xiàn)力量!們:博客 事:到現(xiàn)在我們都沒(méi)有使用到事務(wù),但是在有一些情況下,比如要同時(shí)執(zhí)行好多條操作數(shù)據(jù)庫(kù)的語(yǔ)句,這些語(yǔ)句一起成功,或者一起失敗,此時(shí)就需事務(wù)控制。如果我們需要事務(wù),那么該如何做呢?在務(wù)類SricsaeSQ,這SQpublicvoidsaves(){Databasedb=db.execSQL("insert (name,age)values(?,?)",newObject[]{"db.execSQL("insert (name,age)values(?,?)",newObject[]{"}SQSQpublicvoidDatabasedbdatabaseHelper.getWritableDatabase();db.beginTransaction();//開(kāi)始事務(wù){(diào)db.execSQL("insertinto (name,age)values(?,?)",newObject[]{"db.execSQL("insertinto (name,age)values(?,?)",newObject[]{"db.setTransactionSuccessful();//設(shè)置事務(wù)成功標(biāo)}catch(Exception{}db.endTransaction();//事務(wù)結(jié)}加入事務(wù)之后,如果第二條SQL語(yǔ)句有錯(cuò)誤,變?yōu)閐b.execSQL("insert dddf(name,age)values(?,?)",new ServiceTest測(cè)試類中加入方法,測(cè)試是否可以加入數(shù)據(jù),代碼如下publicvoidtestSavesthrowsThrowable{ Service=new//傳入上下}執(zhí)行testSaves()方法測(cè)試,結(jié)果顯示如圖3-圖3-然后執(zhí)行testGetScrollData()方法,查看是否有數(shù)據(jù)“”,如圖3-圖3-我們發(fā)現(xiàn)“”的數(shù)據(jù)沒(méi)有入數(shù)據(jù)庫(kù)ListView:大致博士,您把數(shù)據(jù)庫(kù)的操作和測(cè)試,都講完了,但是數(shù)據(jù)如何在上顯示出來(lái)呢?有沒(méi)有像列表那類東西?大致:孺子可教。對(duì)于數(shù)據(jù)的顯示,我們可以這個(gè)時(shí)候就會(huì)用到ListView顯示控件,它的顯示風(fēng)格如圖3-29圖3-Litiew的Litie不管,它將數(shù)據(jù)照我們定的風(fēng)格去行行顯示每一行的格要怎么呢?3-0編 item.xml文 圖3-<?xmlversion="1.0"encoding="utf- >android:layout_toRightOf="@id/ >>編寫(xiě)main.xml為Atvimanxmminxl入Litie >這個(gè)時(shí)候我們就需要為L(zhǎng)stiw綁定數(shù)據(jù),Litiew中有一個(gè)seAape()方法設(shè)置適配器,也就是說(shuō)數(shù)據(jù)是通過(guò)適配器傳入Litiew的。在Adrid系統(tǒng)中我們常用的適配器有AraAdper,我們這次用到的適配器Smledptr,以及采用查詢結(jié)果集作為數(shù)據(jù)來(lái)源的SmleusoAateSmpedptpublicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticString privateListViewprivateService publicvoidonCreate(BundleistView= HashMap<String,String>title=newHashMap<String,String>(); id","編號(hào)title.put("name","title.put("age","");SimpleAdapteradapter=newSimpleAdapter(data, item,new id","name",newint[]{R.id. }}第四個(gè)參數(shù):表示根據(jù)title中的key獲取title中的值第五個(gè)參數(shù):表示title中的數(shù)據(jù)顯示所對(duì)應(yīng)的TextView,如圖3-3-運(yùn)行Activity的界面顯示為圖3-3-圖333只是顯示標(biāo)題,并沒(méi)有綁定數(shù)據(jù),如何顯示內(nèi)容呢?那就得用到業(yè)務(wù)類SricgtcrlDtadtpublicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticStringTAG="Activity";privateListViewlistView;privateService publicvoidonCreate(BundlelistView=(ListView)findViewById(R.id. Service=newService(this); s= Service.getScrollData(0,10);//前十條數(shù)據(jù)List<HashMap<String,String>>data=newHashMap<String,String>titlenewHashMap<String,String>(); title.put("name","title.put("age",""); for(: HashMap<String,String>map=newHashMap<String,String>(); id",String.valueOf( .getName());map.put("age", .getAge()));data.add(map);}}
SimpleAdapteradapter=newSimpleAdapter(Activity.this,data,R.layout. item,newString[]{" id","name",newint[]{R.id. }運(yùn)行界面效果如圖3-3-通過(guò)圖3-34發(fā)現(xiàn),數(shù)據(jù)已經(jīng)列出了,這個(gè)列表的每一行是可以點(diǎn)擊的如圖3-3-但是,我們?cè)趺粗傈c(diǎn)擊的是哪行呢?當(dāng)我們點(diǎn)擊ListView每一行的時(shí)會(huì)觸發(fā)一listView.setOnItemClickListener(new{publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//TODOAuto-generatedmethod}當(dāng)我們點(diǎn)擊Litie某一項(xiàng)之后,系統(tǒng)會(huì)調(diào)用oIemlckpaet上面的LstiViw33poiion參數(shù)aapeiLitie圖3-poiioioItmlckLog.i("positionandid","result="+(加入過(guò)濾器“position id”,單擊列表的一項(xiàng)如圖3-35,運(yùn)行結(jié)果如圖3-圖3-Position和id兩個(gè)元素在本次應(yīng)用中是相等的,如何獲取單擊那項(xiàng)的內(nèi)容呢?publicvoidonItemClick(AdapterView<?>parent,Viewintposition,longid)//TODOAuto-generatedmethodListViewlistView=(ListView)parent;HashMap<String,String>itemData=(HashMap<String, id=itemData.get(" Stringname=itemData.get("name");Stringage=Log.i(TAG,"className="+//打印view的類名Log.i(TAG," id+"name="+name+"age"+age);Log.i(TAG,"result="+(position==id));}運(yùn)行本應(yīng)用的方法,如圖3-圖3-運(yùn)行成功之后,如圖3-35點(diǎn)擊列表的一項(xiàng),出現(xiàn)的結(jié)果如圖3-圖3-通過(guò)運(yùn)行結(jié)果,我們得到了被單擊元素的值和視圖的布局RelativeLayout,并且知道position和id相等。上述ListView的使用方法,在實(shí)際應(yīng)用中會(huì)經(jīng)常用到,所以大家一掌握如圖3-40,所選擇的內(nèi)容不屬于數(shù)據(jù)項(xiàng),它只是一個(gè)標(biāo)題,我們可以將它固定放到 >>>><?xmlversion="1.0"encoding="utf-<string o <stringname="app_name">數(shù)據(jù)庫(kù)應(yīng)用<stringname="positionid">編號(hào)<stringname="name"><stringname="age">圖3-然后,把Activity中加入標(biāo)題的代碼去掉,就變?yōu)槿缦麓apublicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticStringTAG=" privateListViewlistView;privateService publicvoidonCreate(BundlelistView= Service=new s= Service.getScrollData(0,10);//前十條數(shù)據(jù)List<HashMap<String,String>>data=newfor( HashMap<String,String>map=newHashMap<String,String>(); id",String.valueOf( map.put("age",String.valueOf(
SimpleAdapteradapter=newSimpleAdapter(Activity.this,data,R.layout. item,newString[]{" id","name",newint[]{R.id. listView.setOnItemClickListener(newAdapterView.OnItemClickListener()publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//TODOAuto-generatedmethodListViewlistView=(ListView)parent;HashMap<String,String>itemData=(HashMap<String, id=itemData.get(" Stringname=itemData.get("name");Stringage=Log.i(TAG,"className="+view.getClass().getName());//打印的類
Log.i(TAG," id+"name="+name+"age"+age);Log.i(TAG,"result="+(position==id));}}}運(yùn)行本應(yīng)用,結(jié)果如圖3-圖3-數(shù)據(jù)和標(biāo)題已經(jīng)分開(kāi),標(biāo)題已經(jīng)不能被單擊選中了使用SimpleCursorAdapter綁定除了前面使用SipeAater綁定數(shù)據(jù),我們還可以使用SipeCroAdperSipeCrordpeCusr就可以,然后將Cror賦給SipeCrordperSipeCrordper去實(shí)現(xiàn)數(shù)據(jù)的綁定。首先,在業(yè)務(wù)類Service中加入返回游標(biāo)的方法getRwSrollData(),代碼如:publicCursorgetRawScrollData(intstartResult,maxResult){List<> s=newArrayList<>();returndatabase.rawQuery("select id,name,agefrom limit?,?",newString[]{String.valueOf(startResult),}然后在Activity類中使用SimpleCursorAdapter綁定數(shù)據(jù),代碼如下publicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticStringTAG=" privateListViewlistView;private publicvoidonCreate(BundlelistView=(ListView)findViewById(R.id. Service=newService(this);/*SimpleCursorAdapter綁定數(shù)據(jù)Cursorcursor= Service.getRawScrollData(010);//得到游標(biāo)SimpleCursorAdapteradapter=newSimpleCursorAdapter(this, item,newString[]{" id","name","age"},newint[]{R.id. R.,R.id.age});listView.setOnItemClickListener(new{publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//TODOAuto-generatedmethodListViewlistView=(ListView)parent;HashMap<String,String>itemData=(HashMap<String, id=itemData.get(" Stringname=itemData.get("
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能化教育模式研究-深度研究
- 2025至2030年中國(guó)非升桿式法蘭閘閥數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 農(nóng)藥質(zhì)量檢測(cè)方法-深度研究
- 2025至2030年中國(guó)潤(rùn)版添加液數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)支架組件數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)微噴霧系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)夜用棉面護(hù)翼衛(wèi)生巾數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)吹瓶機(jī)左右模板數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)全不銹鋼過(guò)濾器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)錦綸捆綁器市場(chǎng)調(diào)查研究報(bào)告
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語(yǔ)期末試卷(含答案無(wú)聽(tīng)力原文無(wú)音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 臨床藥師進(jìn)修匯報(bào)課件
- 軍事理論(2024年版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 《無(wú)人機(jī)法律法規(guī)知識(shí)》課件-第1章 民用航空法概述
- 政治丨廣東省2025屆高中畢業(yè)班8月第一次調(diào)研考試廣東一調(diào)政治試卷及答案
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考物理試卷(5年真題+答案解析)
- 銀行卡凍結(jié)怎么寫(xiě)申請(qǐng)書(shū)
評(píng)論
0/150
提交評(píng)論