




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東舞蹈戲劇職業(yè)學(xué)院《臨床藥理學(xué)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古能源職業(yè)學(xué)院《軟件工程專業(yè)實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽信息工程學(xué)院《氣象與生活》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北中醫(yī)藥高等??茖W(xué)?!缎旅襟w產(chǎn)品設(shè)計(jì)與制作實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南省豫東豫北十所名校2025屆高三第一次月考物理試題文試題含解析
- 常熟中學(xué)2025屆高三下第二次質(zhì)量檢查物理試題含解析
- 江西農(nóng)業(yè)大學(xué)《工程力學(xué)Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 濰坊職業(yè)學(xué)院《高分子科學(xué)前沿與進(jìn)展》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州省南白中學(xué)2025屆高三下-第一次強(qiáng)化訓(xùn)練英語試題試卷含解析
- 供應(yīng)鏈管理與采購制度
- 2025年上半年宜賓江安縣人社局招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年安徽工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫完整版
- 《C#程序設(shè)計(jì)基礎(chǔ)》課件
- 2024年第五屆美麗中國全國國家版圖知識競賽題庫及答案(中小學(xué)組)
- 2025年江蘇航空職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2023年湖北省技能高考計(jì)算機(jī)類備考題庫(萬維題庫)-中部分(800題)
- S145水表井標(biāo)準(zhǔn)圖集
- 2024年天翼云認(rèn)證運(yùn)維工程師考試復(fù)習(xí)題庫(含答案)
- 2025年云南曲靖市事業(yè)單位定向招聘駐曲部隊(duì)未就業(yè)隨軍家屬10人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 第4章水彈性力學(xué)-流體與剛體、彈性體相互耦合運(yùn)動理論
- 2024年10月自考13003數(shù)據(jù)結(jié)構(gòu)與算法試題及答案
評論
0/150
提交評論