最近做项目对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"属性,可以使下拉列表有d出框。
适配器:
适配器主要负责从数据源中抓取数据,传向各个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中。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android Spinner与适配器模式详解及实例代码全部内容,希望文章能够帮你解决Android Spinner与适配器模式详解及实例代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)