Android Spinner與適配器模式詳解及實例代碼
最近做項目對Android Spinner 使用,這里簡單寫個小例子,來測試如何使用。
Spinner
是一個下拉列表,往安卓界面中拖拽一個Spinner控件,在屬性中設(shè)置Android:entries=“@array/spinner_data”
其中spinner_data為在string中設(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)然為了用戶體驗好,可以設(shè)置 android:spinnerMode="dialog"屬性,可以使下拉列表有彈出框。
適配器:
適配器主要負(fù)責(zé)從數(shù)據(jù)源中抓取數(shù)據(jù),傳向各個UI組件。主要的適配器adapter由ArrayAdapter和BaseAdapter。 即適配器負(fù)責(zé)從某個數(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("阿里巴巴");
其次定義一個類Myadapter繼承與抽象類BaseAdapter,抽象方法有四個。
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控件,并且實例化new一個adapter。通過adapter適配器來抓取數(shù)據(jù)源ss中的數(shù)據(jù)。
BaseAdapter適配器最重要的方法是getcount()以及getview()方法。前者返回數(shù)據(jù)源的長度,后者進(jìn)行一些操作。
當(dāng)然可以使用更簡單的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);
通過以上語句,可以直接定位在數(shù)組ss中。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android實現(xiàn)下拉菜單Spinner效果
- Android編程下拉菜單spinner用法小結(jié)(附2則示例)
- Android Spinner 下拉菜單的使用
- android 之Spinner下拉菜單實現(xiàn)級聯(lián)
- Android實現(xiàn)三級聯(lián)動下拉框 下拉列表spinner的實例代碼
- Android中Spinner(下拉框)控件的使用詳解
- Android下拉列表spinner的實例代碼
- Android下拉列表(Spinner)效果(使用C#和Java分別實現(xiàn))
- android下拉刷新ListView的介紹和實現(xiàn)代碼
- Android編程之下拉菜單Spinner控件用法示例
相關(guān)文章
Android RecyclerView顯示Item布局不一致解決辦法
這篇文章主要介紹了Android RecyclerView顯示Item布局不一致解決辦法的相關(guān)資料,需要的朋友可以參考下2017-07-07Android使用LinearLayout設(shè)置邊框
這篇文章主要介紹了Android如何使用LinearLayout設(shè)置邊框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09Android自定義收音機搜臺控件RadioRulerView
這篇文章主要為大家詳細(xì)介紹了Android自定義收音機搜臺控件RadioRulerView的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04