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

news/2024/7/8 13:29:24

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

转载请注明,联系请邮件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


http://www.niftyadmin.cn/n/1974371.html

相关文章

[python]代码中包含中文,提示:SyntaxError: Non-ASCII character '\xcd'

解决方法&#xff1a; 把文件编码方式改为gbk即可。在代码开头写上&#xff1a; # codinggbk 转载于:https://www.cnblogs.com/sophia194910/p/5085218.html

一文彻底搞懂正向代理和反向代理

前言 多长时间不写博客了&#xff1f;反正一双手是数不过来了&#xff0c;今天就顺手写点小知识点。主要想说的是正向代理和反向代理。 正文 代理 首先先说概念&#xff1a; 代理的概念是什么呢&#xff1f; 百度百科提供的说明&#xff1a; 代理服务器&#xff08;Proxy S…

2014-11-6Android学习------在手机上用鼠标绘图的处理---贝塞尔曲线(一)

写一篇文章很辛苦啊&#xff01;&#xff01;&#xff01; 转载请注明&#xff0c;联系请邮件nlp30508qq.com 我学习Android都是结合源代码去学习&#xff0c;这样比较直观&#xff0c;非常清楚的看清效果&#xff0c;觉得很好&#xff0c;今天的学习源码是网上找的源码 百度搜…

JPA数据操作汇总,常用的数据操作方法都在这了

前言 写博客总结&#xff0c;最近公司进新人&#xff0c;写了个内部文档顺便整理了一下jap的数据操作demo 正文 第一种方式&#xff1a; 根据客户名称查询客户&#xff0c;使用jpql的形式查询&#xff0c;配置jpql语句&#xff0c;使用的Query注解 Query(value"from …

nginx将svn请求转发到apache实现svn http请求

需要安装apache libapache2-svn模块&#xff0c;nginx&#xff0c;svn。安装过程略过。 记录比较重要几点&#xff08;不按先后&#xff09;&#xff1a; 安装apache的svn模块 sudo apt-get install libapache2-svn apahce的svn模块,通过他实现svn权限等问题。 apt-get …

树形结构的遍历过程全遍历

前言 树形结构是项目开发中常常用到的一种结构&#xff0c;也是一种经典的数据结构&#xff0c;比如说常见的二叉树&#xff0c;红黑树等&#xff0c;今天要说的不是基础的数据结构&#xff0c;是业务中用到的树形数据结构。 正文 先来看看业务是什么吧&#xff01; 业务 如…

2014-11-6Android学习------Android图像处理之Bitmap类

Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息&#xff0c;进行图像剪切、旋转、缩放等操作&#xff0c;并可以指定格式保存图像文件。本文从应用的角度&#xff0c;着重介绍怎么用Bitmap来实现这些功能。 一、Bitmap的生成 1.1 BitmapFactory dec…

Android如何绘制视图,解释了为何onMeasure有时要调用多次

2019独角兽企业重金招聘Python工程师标准>>> 原文地址&#xff1a;How Android Draws Views 当Activity获取焦点的时候&#xff0c;它就需要绘制布局。Android框架会处理绘制过程&#xff0c;但这个Activity必须提供它布局树的根节点。 绘制过程是从布局的根节点开始…