Android Spinner与适配器模式详解及实例代码
程序员文章站
2024-03-02 23:26:46
最近做项目对android spinner 使用,这里简单写个小例子,来测试如何使用。
spinner
是一个下拉列表,往安卓界面中拖拽一个spinner控件,在属...
最近做项目对android spinner 使用,这里简单写个小例子,来测试如何使用。
spinner
是一个下拉列表,往安卓界面中拖拽一个spinner控件,在属性中设置android:entries=“@array/spinner_data”
其中spinner_data为在string中设置的数组。数组中由固定写好的值。此时便可在界面设置好下拉列表。
<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"/>
当然为了用户体验好,可以设置 android:spinnermode="dialog"属性,可以使下拉列表有弹出框。
适配器:
适配器主要负责从数据源中抓取数据,传向各个ui组件。主要的适配器adapter由arrayadapter和baseadapter。 即适配器负责从某个数据源比如数组中得到数据传向spinner,显示在界面上。
首先定义数据源
private string[] ss=new string[]{ "猫咪", "老虎", "狮子", };
数据源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; }
然后再主函数中
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<string> adapter=new arrayadapter<string>(this,android.r.layout.simple_spinner_item,ss); spinner.setadapter(adapter);
通过以上语句,可以直接定位在数组ss中。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
下一篇: python处理按钮消息的实例详解