Spinner控件也是一种列表类型的控件,它的继承关系如下: 

java.lang.Object 
   ↳ android.view.View 
     ↳ android.view.ViewGroup 
       ↳ android.widget.AdapterView<Textends android.widget.Adapter> 
         ↳ android.widget.AbsSpinner 
          ↳ android.widget.Spinner 
android.widget.Spinner继承了android.view.ViewGroup类。

在Android的UI开发中,Spinner(下拉列表)总是可以用到的,一个简单的自定义Spinner制作我们只需要记住这重要的五步,一个Spinner就可以应用而生了。

(1)新建一个android工程,名称为Spinner。同时建一个Activity,名称为SpinnerActivity。

(2)修改res/layout/main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:id = "@+id/TextView_city"
  9. android:layout_width = "wrap_content"
  10. android:layout_height = "wrap_content"
  11. android:text = "所在城市:"
  12. />
  13. <!-- 定义一个城市信息下拉菜单-->
  14. <Spinner
  15. android:id = "@+id/Spinner_city"
  16. android:layout_width = "wrap_content"
  17. android:layout_height ="wrap_content" >
  18. </Spinner >
  19. </LinearLayout>

(3)SpinnerActivity.java 代码。

  1. package cn.com;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.view.MotionEvent;
  7. import android.view.View;
  8. import android.widget.AdapterView;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.Spinner;
  11. import android.widget.TextView;
  12. public class SpinnerActivity extends Activity {
  13. /** Called when the activity is first created. */
  14. private List<String> list = new ArrayList<String>();
  15. private TextView myTextView;
  16. private Spinner mySpinner;
  17. private ArrayAdapter<String> adapter;
  18. @Override
  19. public void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.main);
  22. //第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
  23. list.add("北京");
  24. list.add("上海");
  25. list.add("深圳");
  26. list.add("福州");
  27. list.add("厦门");
  28. myTextView = (TextView)findViewById(R.id.TextView_city);
  29. mySpinner = (Spinner)findViewById(R.id.Spinner_city);
  30. //第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
  31. adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);
  32. //第三步:为适配器设置下拉列表下拉时的菜单样式。
  33. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  34. //第四步:将适配器添加到下拉列表上
  35. mySpinner.setAdapter(adapter);
  36. //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中
  37. mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
  38. public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
  39. // TODO Auto-generated method stub
  40. /* 将所选mySpinner 的值带入myTextView 中*/
  41. myTextView.setText("您选择的是:"+ adapter.getItem(arg2));
  42. /* 将mySpinner 显示*/
  43. arg0.setVisibility(View.VISIBLE);
  44. }
  45. public void onNothingSelected(AdapterView<?> arg0) {
  46. // TODO Auto-generated method stub
  47. myTextView.setText("NONE");
  48. arg0.setVisibility(View.VISIBLE);
  49. }
  50. });
  51. /*下拉菜单弹出的内容选项触屏事件处理*/
  52. mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){
  53. public boolean onTouch(View v, MotionEvent event) {
  54. // TODO Auto-generated method stub
  55. /**
  56. *
  57. */
  58. return false;
  59. }
  60. });
  61. /*下拉菜单弹出的内容选项焦点改变事件处理*/
  62. mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){
  63. public void onFocusChange(View v, boolean hasFocus) {
  64. // TODO Auto-generated method stub
  65. }
  66. });
  67. }
  68. }

运行结果如下图所示:

android下拉菜单spinner的使用方法的更多相关文章

  1. Android 下拉菜单 Spinner 赋值

    private Spinner m_spiModel = null; //产品型号 m_spiModel = (Spinner) findViewById(R.id.spiModel);//产品型号 ...

  2. android下拉菜单 spinner 学习

    首先看一下继承关系: public class Spinner extends AbsSpinner implements DialogInterface.OnClickListener Class ...

  3. 下拉菜单 Spinner 简单纯字符串版

    下拉菜单 Spinner 简单纯字符串版 public class MainActivity extends Activity implements AdapterView.OnItemSelecte ...

  4. Firemonkey TComboBox 下拉菜单字型修改方法 (D10)

    在 FMX 下的 TComboBox 下拉菜单字型修改有二种方法: uses FMX.Pickers; 使用 Style,需先设定好 Style 后,再指定预设项的 Style,方法如下: proce ...

  5. CSS实现下拉菜单的几种方法

    PS:转自https://www.cnblogs.com/yewenxiang/p/6064117.html 第一种:display:none和display:block切换 1 <!DOCTY ...

  6. Excel设置数据有效性实现单元格下拉菜单的3种方法(转)

    http://blog.csdn.net/cdefu/article/details/4129136 一.直接输入: 1.选择要设置的单元格,譬如A1单元格: 2.选择菜单栏的“数据”→“有效性”→出 ...

  7. Android开发手记(10) 下拉菜单Spinner

    1.自定义Spinner 首先,定义Spinner要显示的项目列表/res/values/arrays.xml <?xml version="1.0" encoding=&q ...

  8. ExtJs 下拉菜单分页工具插件 代码分析

    Ext.ns("Ext.ux"); //创建插件对象 Ext.ux.PageSizePlugin = function(){ //调用父对象的构造方法,并为此插件生成一个预定义st ...

  9. Bootstrap下拉菜单

    前面的话 网页交互的时候经常会需要上下文菜单或者隐藏/显示菜单项,Bootstrap默认提供了用于显示链接列表的可切换.有上下文的菜单.而且在各种交互状态下的菜单展示需要和javascript插件配合 ...

随机推荐

  1. 使用windos电脑模拟搭建web集群(一)

    资源规划 1.环境准备 centos7.2 虚拟机 13个 可以先配置一台,做好基础优化,然后克隆13台分布在 windos宿主机上 两台windos笔记  都是8g的内存 一台有点内存吃紧. 没有物 ...

  2. python每日一类(2):platform

    根据官方文档的解释(https://docs.python.org/3.5/library/platform.html#module-platform): 学习其他人的代码如下: # python p ...

  3. 我只能说,Spring Data REST真的很燥辣

    我自己写REST,到一半了,突然想试一下Spring Data REST,还真不是乱说, 燥辣得很,短时间全生成,快赶上DJANGO的速度了.怕了我. 参考文档: Spring Data REST入门 ...

  4. spring boot的pom.xml配置,正确生成jar包

    spring boot生成的jar包提示没有主清单属性. 需要在pom里加入配置. <?xml version="1.0" encoding="UTF-8" ...

  5. ORA-01940: cannot drop a user that is currently connected

    https://www.cnblogs.com/lwlxqlccc/p/8694696.html

  6. Linux Shell 参数传递多种方式

    背景 最近编写ansible脚本,需要自动调用之前写好的shell脚本,由于shell脚本中包含了read命令接收用户的手动输入,为了实现ansible脚本的自动运行,不得不将手动输入转换为自动输入. ...

  7. objective-c 强弱引用、properties的学习

    一.强弱引用 强引用:strong reference 弱引用:weak reference 引用可以理解为指针A指向的对象B.换句话说,拥有指针A的对象是对象B的所有者(ownership). 区别 ...

  8. java有自动垃圾回收机制

    当垃圾收集器判断已经没有任何引用指向对象的时候,会调用对象的finalize方法来释放对象占据的内存空间~ java中垃圾回收以前听老师讲好像是内存满了他才去做一次整体垃圾回收,在回收垃圾的同时会调用 ...

  9. Unity定制 Image、Text的对象生成

    2016.4.14 昨天看到 雨凇的 Unity3D研究院之UGUI一个优化效率小技巧:  http://www.xuanyusong.com/archives/4006 完好了他所说的代码: usi ...

  10. memcache学习资料

    memcached是国外社区网站LiveJournal团队开发,通过缓存数据库查询结果,减少数据库访问次数,从而提高动态web站点性能.官方站点 http://memcached.org/memcac ...