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

写一篇文章很辛苦啊!!!

转载请注明,联系请邮件nlp30508@qq.com


我学习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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值