首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2014-11-6Android学习------Spinner下拉选择框控件学习(二)---监听事件

2014-11-6Android学习------Spinner下拉选择框控件学习(二)---监听事件

作者头像
wust小吴
发布2022-03-07 14:13:54
6960
发布2022-03-07 14:13:54
举报
文章被收录于专栏:风吹杨柳风吹杨柳

我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:activity切换特效.zip我的博客写的比较乱,如果本篇文章没有看懂,

请先看上篇文章,地址:http://blog.csdn.net/u014737138/article/details/4086613

前面我们简单的学习了Spinner控件,接下来总结下并整合下网上大家说的比较好的内容

Spinner控件的学习有以下几点:

1.在XML文件中定义

<LinearLayout …… > <TextView android:id="@+id/spinner_label" …… /> <!-- 经过网友的测试android:drawSelectorOnTop="true | false"不起作用,因此此参数可以不设置,我在编写使用alt+/没有这个属性显示出来--> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>

2.使用适配器填充数据

1)设置Spinner之中的元素内容,采用了ArrayAdapter来描述,并通过setApdater()来设置adapter

这个适配器的构造有两种,一种是在activity类中定义常量,生成数组放入构造函数的参数中

ArrayAdapter<String> spinnerAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,list>

一种是从资源文件中构造,也就是调用ArrayAdapter.createFromResource(this,R.array.xx,android.R.layout.simple_spinner_item)

这两种方法都是可以的,区别就是如果下拉列表非常多的话,肯定就选择XML文件来做,也就是第二种

关于构造ArrayAdapter的参数问题还是有必要要解释下:

android.R.layout.simple_spinner_item 该参数表示Spinner没有展开前的UI类型

simple_spinner_dropdown_item这是点击圆圈选择方式

2)将Spinner控件和适配器进行绑定

spinner.setAdapter(spinnerAdapter);

3)使用setOnItemSelectedListener()来设置Spinner的点击触发的callback函数,有onItemSelected和onNothingSelected两个接口需要具体给出。

public class SpinnerTest extends Activity implements OnItemSelectedListener{ protected void onCreate(Bundle savedInstanceState) { …… spin.setOnItemSelectedListener(this); … … } @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub //如果选中了,在这里写你想要处理的代码 } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }

3.数据内容的XML文件。arrays.xml

<resources> <string name="planet_prompt">太阳系行星:</string> <string-array name="planets_arry"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item> <item>Neptune</item> </string-array> </resources>

这个XML文件中有一行code是这样的:<string name="planet_prompt">太阳系行星:</string>

在layout的xml中:

<LinearLayout … > <TextView … /> <Spinner android:id="@+id/spinner4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/planet_prompt" /> </LinearLayout>

使用了 planet_prompt android:prompt 属性解释:在Spinner中,我们设置了prompt,根据@string在strings.xml中查找,prompt的内容为“太阳系行星:”在我们点击展开Spinner中,我们可以看到在最上面增加了提示,如上图所示。

Spinner有两个属性1:prompt是初始的时候,Spinner显示的数据,是一个引用类型 2:entries是直接在xml布局文件中绑定数据源(可以不设置,即可以在Activity中动态绑定)

到这里基本要说的都说了,写的过程中参考文章:http://blog.csdn.net/flowingflying/article/details/6260829

关于适配器不一定非要用ArrayAdapter,还可以自己去定义自己的适配器,如何自定义适配器,请看我前面的文章,继承BaseAdapter

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档