最近做項目對Android Spinner 使用,這里簡單寫個小例子,來測試如何使用。
Spinner
是一個下拉列表,往安卓界面中拖拽一個Spinner控件,在屬性中設置Android:entries=“@array/spinner_data”
其中spinner_data為在string中設置的數組。數組中由固定寫好的值。此時便可在界面設置好下拉列表。
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"/>
當然為了用戶體驗好,可以設置 android:spinnerMode="dialog"屬性,可以使下拉列表有彈出框。
適配器:
適配器主要負責從數據源中抓取數據,傳向各個UI組件。主要的適配器adapter由ArrayAdapter和BaseAdapter。 即適配器負責從某個數據源比如數組中得到數據傳向Spinner,顯示在界面上。
首先定義數據源
private String[] ss=new String[]{
"貓咪",
"老虎",
"獅子",
};
數據源2
private List list=new ArrayList();
list.add("百度");
list.add("騰訊");
list.add("阿里巴巴");
其次定義一個類Myadapter繼承與抽象類BaseAdapter,抽象方法有四個。
private class Myadapter extends BaseAdapter{
@Override
public int getCount() {
// 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(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TextView textView=new TextView(MainActivity.this);
textView.setText(ss[position]);
return textView;
}
然后再主函數中
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
BaseAdapter adapter=new Myadapter();
spinner.setAdapter(adapter);
先找到Spinner控件,并且實例化new一個adapter。通過adapter適配器來抓取數據源ss中的數據。
BaseAdapter適配器最重要的方法是getcount()以及getview()方法。前者返回數據源的長度,后者進行一些操作。
當然可以使用更簡單的ArrayAdaper適配器。
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_spinner_item,ss);
spinner.setAdapter(adapter);
通過以上語句,可以直接定位在數組ss中。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!