Android 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中。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
神奇的listView实现自动显示隐藏布局Android代码
这篇文章主要介绍了神奇的listView实现自动显示隐藏布局Android代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-09-09
Android采取BroadcastReceiver方式自动获取验证码
这篇文章主要介绍了Android采取BroadcastReceiver方式自动获取验证码,感兴趣的小伙伴们可以参考一下2016-08-08
Flutter 使用cached_image_network优化图片加载体验
在 Flutter 中,cached_image_network 即提供了缓存网络图片功能,同时还提供了丰富的加载过程指示。本文就来看下cached_image_network的具体使用2021-05-05
Android实现双模(CDMA/GSM)手机短信监听的方法
这篇文章主要介绍了Android实现双模(CDMA/GSM)手机短信监听的方法,涉及Android短信的原理与相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下2016-06-06


最新评论