Android Spinner與適配器模式詳解及實(shí)例代碼
最近做項(xiàng)目對(duì)Android Spinner 使用,這里簡(jiǎn)單寫個(gè)小例子,來(lái)測(cè)試如何使用。
Spinner
是一個(gè)下拉列表,往安卓界面中拖拽一個(gè)Spinner控件,在屬性中設(shè)置Android:entries=“@array/spinner_data”
其中spinner_data為在string中設(shè)置的數(shù)組。數(shù)組中由固定寫好的值。此時(shí)便可在界面設(shè)置好下拉列表。
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="17dp"
android:entries="@array/spinner_data"/>
當(dāng)然為了用戶體驗(yàn)好,可以設(shè)置 android:spinnerMode="dialog"屬性,可以使下拉列表有彈出框。
適配器:
適配器主要負(fù)責(zé)從數(shù)據(jù)源中抓取數(shù)據(jù),傳向各個(gè)UI組件。主要的適配器adapter由ArrayAdapter和BaseAdapter。 即適配器負(fù)責(zé)從某個(gè)數(shù)據(jù)源比如數(shù)組中得到數(shù)據(jù)傳向Spinner,顯示在界面上。
首先定義數(shù)據(jù)源
private String[] ss=new String[]{
"貓咪",
"老虎",
"獅子",
};
數(shù)據(jù)源2
private List<String> list=new ArrayList<String>();
list.add("百度");
list.add("騰訊");
list.add("阿里巴巴");
其次定義一個(gè)類Myadapter繼承與抽象類BaseAdapter,抽象方法有四個(gè)。
private class Myadapter extends BaseAdapter{
@Override
public int getCount</span>() {
// TODO Auto-generated method stub
return ss.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView</span>(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TextView textView=new TextView(MainActivity.this);
textView.setText(ss[position]);
return textView;
}
然后再主函數(shù)中
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
BaseAdapter adapter=new Myadapter();
spinner.setAdapter(adapter);
先找到Spinner控件,并且實(shí)例化new一個(gè)adapter。通過(guò)adapter適配器來(lái)抓取數(shù)據(jù)源ss中的數(shù)據(jù)。
BaseAdapter適配器最重要的方法是getcount()以及getview()方法。前者返回?cái)?shù)據(jù)源的長(zhǎng)度,后者進(jìn)行一些操作。
當(dāng)然可以使用更簡(jiǎn)單的ArrayAdaper適配器。
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,ss);
spinner.setAdapter(adapter);
通過(guò)以上語(yǔ)句,可以直接定位在數(shù)組ss中。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android實(shí)現(xiàn)下拉菜單Spinner效果
- Android編程下拉菜單spinner用法小結(jié)(附2則示例)
- Android Spinner 下拉菜單的使用
- android 之Spinner下拉菜單實(shí)現(xiàn)級(jí)聯(lián)
- Android實(shí)現(xiàn)聯(lián)動(dòng)下拉框 下拉列表spinner的實(shí)例代碼
- Android中Spinner(下拉框)控件的使用詳解
- Android下拉列表spinner的實(shí)例代碼
- Android下拉列表(Spinner)效果(使用C#和Java分別實(shí)現(xiàn))
- android下拉刷新ListView的介紹和實(shí)現(xiàn)代碼
- Android編程之下拉菜單Spinner控件用法示例
相關(guān)文章
android自定義Camera實(shí)現(xiàn)錄像和拍照
這篇文章主要為大家詳細(xì)介紹了android自定義Camera實(shí)現(xiàn)錄像和拍照功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android快速實(shí)現(xiàn)觸摸移動(dòng)的懸浮窗
這篇文章主要為大家詳細(xì)介紹了Android快速實(shí)現(xiàn)觸摸移動(dòng)的懸浮窗,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
神奇的listView實(shí)現(xiàn)自動(dòng)顯示隱藏布局Android代碼
這篇文章主要介紹了神奇的listView實(shí)現(xiàn)自動(dòng)顯示隱藏布局Android代碼實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
詳解Android ViewPager2中的緩存和復(fù)用機(jī)制
最近接觸到豎向整頁(yè)滑動(dòng)的需求,發(fā)現(xiàn)了viewpager2,viewpager2支持fragment,保留了viewpager的特性,下面這篇文章主要給大家介紹了關(guān)于ViewPager2中的緩存和復(fù)用機(jī)制的相關(guān)資料,需要的朋友可以參考下2021-11-11
Android采取BroadcastReceiver方式自動(dòng)獲取驗(yàn)證碼
這篇文章主要介紹了Android采取BroadcastReceiver方式自動(dòng)獲取驗(yàn)證碼,感興趣的小伙伴們可以參考一下2016-08-08
Flutter 使用cached_image_network優(yōu)化圖片加載體驗(yàn)
在 Flutter 中,cached_image_network 即提供了緩存網(wǎng)絡(luò)圖片功能,同時(shí)還提供了豐富的加載過(guò)程指示。本文就來(lái)看下cached_image_network的具體使用2021-05-05
Android實(shí)現(xiàn)雙模(CDMA/GSM)手機(jī)短信監(jiān)聽的方法
這篇文章主要介紹了Android實(shí)現(xiàn)雙模(CDMA/GSM)手機(jī)短信監(jiān)聽的方法,涉及Android短信的原理與相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06

