第三章 適配器_第1頁
第三章 適配器_第2頁
第三章 適配器_第3頁
第三章 適配器_第4頁
第三章 適配器_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

適配器適配器模式配器模式數(shù)據(jù)SpinnerListView其他高級View適配器適配器模式配器適配器是一個(gè)連接數(shù)據(jù)和AdapterView的橋梁,通過它能有效地實(shí)現(xiàn)數(shù)據(jù)與AdapterView的分離設(shè)置,使AdapterView與數(shù)據(jù)的綁定更加簡便,修改更加方便Android中提供了很多的Adapter,表中列出了常用的幾個(gè)。

Adapter含義ArrayAdapter

用來綁定一個(gè)數(shù)組SimpleAdapter

用來綁定在xml中定義的控件對應(yīng)的數(shù)據(jù)SimpleCursorAdapter

用來綁定游標(biāo)得到的數(shù)據(jù)BaseAdapter

通用的基礎(chǔ)適配器ArrayAdapter的使用一般步驟:第一步:

定義一個(gè)數(shù)組來存放數(shù)據(jù)要顯示item的內(nèi)容。第二步:通過實(shí)現(xiàn)ArrayAdapter的構(gòu)造函數(shù)來創(chuàng)建一個(gè)ArrayAdapter的對象。第三步:

通過setAdapter()方法綁定ArrayAdapter。ArrayAdapter類ArrayAdapter<String>arrayAdapter=newArrayAdapter<String>(

上下文,

布局,數(shù)據(jù)源)注釋上下文:一般是指當(dāng)前屏

布局:android自帶的布局,利用android.R.layout來獲取數(shù)據(jù)源:例如事先定義好的數(shù)組ArrayAdapter<String>arrayAdapter=newArrayAdapter<String>(

上下文,

布局,數(shù)據(jù)顯示控件,數(shù)據(jù)源)注釋上下文:一般是指當(dāng)前屏

布局:自定義布局,利用R.layout來獲取數(shù)據(jù)顯示控件:具本用來顯示數(shù)據(jù)的控件數(shù)據(jù)源:例如事先定義好的數(shù)組案例:下拉列表(spinner)Spinner下拉列表數(shù)據(jù)項(xiàng)加載的兩種方法1、通過entries屬性靜態(tài)加載2、通過適配器加載1、通過entries屬性靜態(tài)加載步驟1、在values文件夾創(chuàng)建一個(gè)數(shù)組xml文件2、設(shè)置spinner的entries屬性<Spinnerandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:entries="@array/city"/><?xmlversion="1.0"encoding="utf-8"?><resourcesxmlns:android="/apk/res/android"><string-arrayname="city"><item>成都</item><item>上海</item><item>北京</item></string-array></resources>2、通過適配器加載操作步驟:1、定義數(shù)組2.定義數(shù)組適配器參考代碼:publicvoidsp_bind_item(){ String[]city_item=newString[]{"成都","重慶","北京"}; ArrayAdapter<String>aa=newArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,city_item); sp.setAdapter(aa); }下拉列表常用監(jiān)聽事件事件(選擇列表監(jiān)聽事件setOnItemSelectedListener方法(獲取選項(xiàng)的方法)getSelectedItem()sp.setOnItemSelectedListener(newSpinner.OnItemSelectedListener(){publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){}}

單選按鈕的相關(guān)事件及方法

1,RadioGroup選項(xiàng)改變監(jiān)聽事件:CheckedChangeListener()rg.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){publicvoidonCheckedChanged(RadioGrouparg0,intarg1){}});2,RadioButton的相關(guān)方法;getId()獲取單選按鈕的id值(int類型)getText()獲取單選按鈕的文本(String類型)多項(xiàng)選擇(CheckBox)常用監(jiān)聽事件cb8.setOnCheckedChangeListener(newCheckBox.OnCheckedChangeListener(){public

voidonCheckedChanged(CompoundButtonbuttonView,boolean

isChecked){}}});參數(shù)isChecked記錄了用戶對于此項(xiàng)復(fù)選框的操作情況,若其值為true則表明選中了此項(xiàng),若為false表明沒有進(jìn)行選擇SimpleAdapter很多時(shí)候需要在列表中展示一些除了文字以外的東西,比如ImageView(圖片),還可以放上Button(按鈕),CheckBox(復(fù)選框)等等。這時(shí)候可以使用SimpleAdapter。SimpleAdapter的使用也非常簡單,同時(shí)它的功能也非常強(qiáng)大。(1)根據(jù)需要自定義布局。(2)定義一個(gè)HashMap構(gòu)成的列表,將數(shù)據(jù)以鍵值對的方式存放在里面。(3)構(gòu)造SimpleAdapter對象。(4)將SimpleAdapter綁定到控件中。SimpleAdapter類publicSimpleAdapter(Contextcontext,List<?extendsMap<String,?>>data,intresource,String[]from,int[]to)參數(shù):context

SimpleAdapter關(guān)聯(lián)的View的運(yùn)行環(huán)境data一個(gè)Map組成的List。在列表中的每個(gè)條目對應(yīng)列表中的一行,每一個(gè)map中應(yīng)該包含所有在from參數(shù)中指定的鍵resource

一個(gè)定義列表項(xiàng)的布局文件的資源ID。布局文件將至少應(yīng)包含那些在to中定義了的IDfrom

一個(gè)將被添加到Map映射上的鍵名to將綁定數(shù)據(jù)的視圖的ID,跟from參數(shù)對應(yīng),這些應(yīng)該全是TextViewarrayList什么是ArrayList

ArrayList就是傳說中的動態(tài)數(shù)組,用MSDN中的說法,就是Array的復(fù)雜版本,它提供了如下一些好處:動態(tài)的增加和減少元素實(shí)現(xiàn)了ICollection和IList接口靈活的設(shè)置數(shù)組的大小如何使用ArrayList

最簡單的例子:

ArrayList

List

=

new

ArrayList

();

for(

int

i=0;i<10;i++

)

//給數(shù)組增加10個(gè)Int元素

{List.Add(i);

}Stringx[]=newString[2];X[0]=“123”HashMap用于存放數(shù)據(jù)的哈希表HashMap采用一種所謂的“Hash算法”來決定每個(gè)元素的存儲位置HashMap類的put(Kkey,Vvalue)方法案例參考代碼publicvoidsp_bind_item(){ String[]name=newString[]{"rose","roke","mike","chen"}; String[]tel=newString[]{"254668","457516","654258","3545755"}; int[]img=newint[]{R.drawable.x1,R.drawable.x2,R.drawable.x3,R.drawable.y1}; Listli=newArrayList(); HashMaphm=newHashMap(); for(inti=0;i<4;i++){ hm.put("image",img[i]); hm.put("name",name[i]); hm.put("tel",tel[i]); li.add(hm); }

SimpleAdaptersma=newSimpleAdapter(MainActivity.this, li, R.layout.item_buju, newString[]{"image","name","tel"}, newint[]{R.id.pic,R.,R.id.tel});

lv.setAdapter(sma); }自定義適配器android中基本的適配器BaseAdapter是一個(gè)抽象類,而它非常懶,基本沒有什么方法去可以直接使用的,所以我們在實(shí)際開發(fā)中如果需要實(shí)現(xiàn)各種各樣的適配器樣式,則需要自定義適合自己的適配器,也就是說需要繼承BaseAdapter自定義適配器LayoutInflater(布局加載器)作用是將layout的xml布局文件實(shí)例化為View類對象獲取LayoutInflater的方法有如下三種:(1)LayoutInflaterinflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);(該方法實(shí)質(zhì)就是第一種方法,可參考源代碼)(3)Viewlayout=inflater.inflate(R.layout.main,null);LayoutInflaterinflater=getLayoutInflater();(在Activity中可以使用,實(shí)際上是View子類下window的一個(gè)函數(shù))Viewlayout=inflater.inflate(R.layout.main,null);(2)LayoutInflaterinflater=LayoutInflater.from(context);Viewlayout=inflater.inflate(R.layout.main,null);

classmyAdapterextendsBaseAdapter{public

intgetCount(){//TODOAuto-generatedmethodstubreturn0;}publicObjectgetItem(intarg0){//TODOAuto-generatedmethodstubreturn

null;}@Overridepublic

longgetItemId(intarg0){//TODOAuto-generatedmethodstubreturn0;}@OverridepublicViewgetView(intarg0,Viewarg1,ViewGrouparg2){returnarg1;}}作業(yè)簡單游標(biāo)適配器SimpleCursorAdapteradapter=new

SimpleCursorAdapter(Null//上下文,0//行布局,c游標(biāo)數(shù)據(jù),null,數(shù)據(jù)庫的列名null);顯示數(shù)據(jù)的控件ID數(shù)組自定義游標(biāo)適配器public

classmyAdapterextendsCursor

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論