spinner是什么东西呢?有点像下拉菜单,其实是一个弹出窗口,但是是可以进行进一步操作的弹出窗口。你点击那个三角形的符号,弹出一个窗口,通常是列表,然后进行操作。

它在xml文件中的定义和其它控件没什么不一样,

  <Spinner

      android:id="@+id/spinnerId"

      android:layout_width="fill_parent"

      android:layout_height="wrap_content"

  />

  但是,除此之外,对于spinner的定义还有其它步骤,在string.xml文件中声明一个数组,使用string-array来进行声明,里面以item的形式装需要显示的各种字符串。

<string-array name="times">
<item>30 Seconds</item>
<item>1 Minute</item>
<item>5 Minutes</item>
<item>10 Minutes</item>
<item>15 Minutes</item>
<item>30 Minutes</item>
<item>60 Minutes</item>
</string-array>

这样就可以了,然后开始在主程序中开始写代码。

首先,跟所有带有id的控件一样,先在主程序中通过findViewById关联一下spinner,然后就是设置ArrayAdapter,最简便的方法就是直接利用android官方提供的布局文件来设置条目的样式,官方是一个文字加上一个radiobutton

 ArrayAdapter<CharSequence>adapter = ArrayAdapter.createFromResource(this,R.array.times,android.R.layout.simple_spinner_item);

还要设置的就是下拉菜单的样式,就是点出来以后的列表的样式,也是使用官方提供的布局文件

 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

设置好了以后就将这个adapter绑定在spinner上面,同时为spinner设置标题(通过setPrompt方法)。

 spinner.setAdapter(adapter);
spinner.setPrompt("标题名称");

这些都设置好以后就可以正确显示了,但是我们在实际的程序中需要做的是点击以后进行下一步的动作,所以要为每一个条目设置监听器,当某一个条目被点击的时候,实现某一项功能。

其实这个跟普通的监听没有太大区别。无非就是在spinner上面绑定一个监听器spinner.setOnItemSelectedListener(newSpinnerListener());  //假设监听类为SpinnerListener

然后再写一个内部类SpinnerListener,实现OnItemSelectedListener类,其中要实现两个方法。主要是下面这一个,另一个叫做 public void onNothingSelected(AdapterView<?>arg0)

 public voidonItemSelected(AdapterView<?>adapterView, View view, int position, long id) {

 String s =adapterView.getItemAtPosition(position).toString(); //这里就是将条目所包含的字符串赋给s

 System.out.println(s);   //这里可以进行进一步的操作,比如进行比较,然后针对不同的字符串做出不同操作

 }

android下拉选择框spinner的更多相关文章

  1. 下拉选择框 Spinner的用法。

    代码如下: package com.lixu.xialakuang; import android.app.Activity; import android.content.Context; impo ...

  2. Android下拉选择框之PopupWindow

    1.效果图 2.思路分析 1.点击弹出对话框 popupwindow 2.对popupwindow进行相关设置,popupwindow中设置view为listview 3.listview中item设 ...

  3. 下拉选择框,PopupWindow的使用

    实现下拉选择框 直接上代码 Activity.java package com.example.shaofei.customerviewdemo1; import android.os.Bundle; ...

  4. java、easyui-combotree树形下拉选择框

    最近一直在研究这个树形的下拉选择框,感觉非常的有用,现在整理下来供大家使用: 首先数据库的表架构设计和三级菜单联动的表结构是一样,(父子关系) 1.下面我们用hibernate建一下对应的额实体类: ...

  5. FancySelect – 更好用的 jQuery 下拉选择框插件

    FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...

  6. HTML、CSS小知识--兼容IE的下拉选择框select

    HTML <div class="s_h_ie"> <select id="Select1" disabled="disabled& ...

  7. Bootstrap系列 -- 15. 下拉选择框select

    Bootstrap框架中的下拉选择框使用和原始的一致,多行选择设置multiple属性的值为multiple.Bootstrap框架会为这些元素提供统一的样式风格 <form role=&quo ...

  8. CSS自定义select下拉选择框(不用其他标签模拟)

    今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

  9. 基于jQuery美化联动下拉选择框

    今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲 ...

随机推荐

  1. Java队列实现

    队列数组实现:队列长度有限,但是考虑到平时一般都使用有界队列,这应该也不算是个缺点 public class Queue { private Object[] objs; private int he ...

  2. npm更换淘宝镜像

    镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set registry https://regist ...

  3. JavaScript高级程序设计(第三版)学习笔记11、12、17章

    章, DOM扩展 选择符 API Selector API Level1核心方法querySelector .querySelectorAll,兼容的浏览器可以使用 Document,Element  ...

  4. 页面javascript 和jquery 的一些用法

    confirm:提交之前的提示验证 if(confirm("确认是否提交?")){ alert("确认提交..."); } input按钮的禁用: $(&quo ...

  5. Python(2.7.6) glob - 匹配指定模式的文件

    Python 标准库的 glob 模块支持查询匹配指定模式的文件或目录.这里的模式使用的并不是正则表达式,而是通过通配符来匹配的 Unix 风格的路径名扩展. 支持的通配符: 通配符 说明 *  匹配 ...

  6. Sql 基于列的Case表达式

    Case表达式可以用在 Select,update ,delete ,set,in,where ,order by,having子句之后, 只是case表达式不能控制sql程序的流程,只能作为基于列的 ...

  7. c# 单例模式[Singleton]之深夜闲聊

    都有点记不起认识单例模式(也有叫单件模式的)是在什么时候了,有时候东西认多了不常用的话也经常抛之脑后甚至逐渐从大脑里被移除.不闲扯了,直接入正题吧. 什么是单例模式? 保证在整个应用程序的生命周期中, ...

  8. 判断UserAgent是否来自微信

    iso: Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko ...

  9. ASP.NET MVC Web API使用示例

    上篇博客讲解rest服务开发时,曾经提到过asp.net mvc中的rest api,由于篇幅原因,没有在上篇博客中进行讲解,这里专门拿出来进行讨论.还是一样引用上次的案例,用asp.net mvc提 ...

  10. C#基础(七)——静态类与非静态类、静态成员的区别

    静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例 ...