Spinner 是android下的一个下拉框控件,可以支持多级,通常定义如下:

<Spinner     android:id="@+id/spinner1"     android:layout_width="match_parent"     android:layout_height="wrap_content" />

Spinner与ListView类似,都是采用适配器的方法关联数据,例如:

//定义一个数据buffer = new ArrayList<String>();buffer.add("条目1");buffer.add("条目2");buffer.add("条目3");

定义一个适配器,这里采用基本适配器,默认实现四个方法,如下:

private BaseAdapter adapter = new BaseAdapter(){    @Override    public int getCount() {                    return buffer.size();//数据大小    }    @Override    public Object getItem(int arg0) {        return buffer.get(arg0);//某一个位置的数据,对应一个item    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) { //绘制展示部分        LinearLayout ll = new LinearLayout(MainActivity.this);        ll.setOrientation(LinearLayout.HORIZONTAL);        TextView tv     = new TextView(MainActivity.this);        tv.setText(buffer.get(position));        ll.addView(tv);        return ll;    }        };

之后配置适配器:

spinner.setAdapter(adapter);

在Spinner中有两个常用API:

  • 一个是某一个Item 被选中的事件
@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {    LinearLayout ll = (LinearLayout) arg1;    TextView tv      = (TextView) ll.getChildAt(0);    Toast toast = new Toast(MainActivity.this);    toast = Toast.makeText(getApplicationContext(),     tv.getText(), Toast.LENGTH_SHORT);    toast.show();}

此处:arg0对应position,arg3对应id(即adapter里getItemId的值,而非视图ID)

  • 数据刷新时更新视图
buffer.add("条目4");buffer.add("条目5");adapter.notifyDataSetChanged();//触发更新视图控件

更多相关文章

  1. android中gallery的使用
  2. Android重要控件概览(上)
  3. Android(安卓)数据库Sqlite的使用(1)
  4. android sqlite
  5. Android——SQLite使用
  6. android中的数据库操作
  7. android Service之四:传递复杂数据类型的远程服务
  8. Epoxy——RecyclerView的绝佳助手
  9. Android夸进程通信机制六:使用ContentProvider进行进程间通信

随机推荐

  1. Android 4.0应用界面设计分析
  2. Android Handler 线程消息机制
  3. Android串口通信:抱歉,学会它真的可以为所
  4. Android gradle build 修改文件名称及目
  5. android教父高焕堂 成都之行
  6. 处理ArcGIS Android工程和ADT v17中的依
  7. 【Android】源码分析 - Handler消息机制
  8. 一个简单的Android进程管理器(初稿)
  9. 花了 6 个月整理了 100 篇 Android 干货
  10. Android教父高焕堂:开源只是手段,开放才是