ANDROID之LISTACTIVITY:布局與數(shù)據(jù)綁定_第1頁
ANDROID之LISTACTIVITY:布局與數(shù)據(jù)綁定_第2頁
ANDROID之LISTACTIVITY:布局與數(shù)據(jù)綁定_第3頁
ANDROID之LISTACTIVITY:布局與數(shù)據(jù)綁定_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、android之listactivity:布局與數(shù)據(jù)綁定 分類: android 2011-04-25 18:05 430人閱讀 評(píng)論(0) 收藏 舉報(bào) android中的列表,當(dāng)然也可以用listview來完成所需要的功能,用法是一樣的。廢話不說,來關(guān)鍵的。liveactivity本身繼承了關(guān)于list操作的眾多接口,我們可以方便的重寫這些操作中需要的方法來實(shí)現(xiàn)自己需要的功能。如果要用listactivity,則activity的layout文件中必須包括一個(gè)(只能一個(gè))listview,且listview的id=id/android:list。如下代碼,一個(gè)標(biāo)準(zhǔn)的listactivity

2、layout文件:請(qǐng)注意 listview與textview的id。前面說了,listview的id為固定不變的,為”./idandroid:ost”,listactivity會(huì)根據(jù)id自動(dòng)查找listview引用;但如果當(dāng)listview中沒有值而又想提示一句話時(shí),那么用于指定顯示提示信息的textview的id必須為”id/android:empty,提示的信息可以通過android:text進(jìn)行指定。ok,關(guān)于如何布局說完了,那么如何給list綁定值,并進(jìn)行操作呢?首先我們需要確實(shí)的是,listview的布局也完成了,并通過調(diào)用setcontentview()進(jìn)行了綁定,但直到現(xiàn)在我們還

3、沒有確定listview中的第一行顯示的格式是什么,是直接顯示文字還是要“圖文并茂”的顯示。android系統(tǒng)為我們提供了多種模板進(jìn)行選擇(android.r.layout),如simple_list_item_1每項(xiàng)有一個(gè)textviewsimple_list_item_2每項(xiàng)有兩個(gè)textviewsimple_list_item_checked帶checkview的項(xiàng)simple_list_item_multiple_choise每項(xiàng)有一個(gè)textview并可以多選simple_list_item_single_choice每項(xiàng)有一個(gè)textview,但只能進(jìn)行單選。但然,如果以上項(xiàng)模板還

4、無法滿足你的要求,那只能自定義模板了(相當(dāng)簡單,就是定義一個(gè)layout布局)。如果你做的的開發(fā)的話,是否對(duì)datalist控件有印象呢。如果對(duì)datalist有印象,那么理解listview也就相當(dāng)?shù)暮唵瘟?。自定義模板可以根據(jù)自己的需要定義成任意的格式,包括圖片、方案及其他可顯示的view,不用多說,自己定義就好了,關(guān)鍵是如果使用并進(jìn)行模板的綁定。如何要對(duì)listview進(jìn)行數(shù)據(jù)綁定,必須使用到一個(gè)接口:adapter。其中最經(jīng)常與listview進(jìn)行配合使用的有arrayadapter、cursoradapter及simpleadapter等。從名稱可以看出arrayadap

5、ter使用的是一個(gè)arrayadapter做為數(shù)據(jù)源,simplecursoradapter使用的是一個(gè)cursor使用數(shù)據(jù)源,都比較容易理解,那么如何使用simpleadapter作為數(shù)據(jù)的適配器呢。ok,從易到難。arrayadapter:string data = item1, item2, item3, item4, item5 ;listview.setadapter(new arrayadapter(this, android.r.layout.simple_list_item_single_choice, data);simplecursoradapter:/從數(shù)據(jù)庫中查詢cur

6、sor cursor = adapter.getallnotes(); startmanagingcursor(cursor); /設(shè)置要顯示的數(shù)據(jù)源中的列名(需要包含在cursor中) string from = new string diarydbadapter.key_column_title, diarydbadapter.key_column_createed ; /顯示的view(自定義模板中的view) int to = new int r.id.txtrowtitle, r.id.txtrowcreateed ; /綁定 simplecursoradapter notes =

7、new simplecursoradapter(this, r.layout.diaryrow, cursor, from, to); setlistadapter(notes);、simpleadapter: simpleadapter將一個(gè)list做為數(shù)據(jù)源,可以讓listview進(jìn)行更加個(gè)性化的顯示。而list中的第一項(xiàng)是個(gè)map(用到泛型),其中map中的每項(xiàng)將與listview中的每項(xiàng)進(jìn)行一一對(duì)應(yīng)綁定。ok,看一下構(gòu)造: simpleadapter(context context,list? extends map data,int resource,string form, int

8、 to);context:當(dāng)前上下文,一般把a(bǔ)ctivity.this傳遞進(jìn)行。data:數(shù)據(jù)源。resource:自定義的layout模板資源,可以用r.layout.xxx獲取引用。form:定義listview中的每一項(xiàng)數(shù)據(jù)索引,索引來自于map,即指定要顯示的內(nèi)容。to:view數(shù)組,在listview模板中的定義view,與form中需要一一對(duì)應(yīng)。事例代碼: listhashtable listcontent=newarraylisthashtable();for(inti = 0; i devicelist.size(); i+) hashtable table=newhashtable(); table.put(name,devicelist.get(i).name); table.put(address,devicelist.get(i).address); table.put(type,devicelist.get(i).type+); listcontent.add(table); adapter=newsimpleadapter(heartactivity.this,listcontent, r.layout.child, /自定義的layoutnewstring name,address,newint r.id.txtdevicena

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論