>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19554 个阅读者 刷新本主题
 * 贴子主题:  Android Spinner范例 回复文章 点赞(0)  收藏  
作者:mary    发表时间:2020-03-31 19:57:45     消息  查看  搜索  好友  邮件  复制  引用

                
  1.    ( 1 )新建一个Android工程,名字为SpinnerActy。修改layout下的main.xml,添加一个Textview和一个Spinner,文件内容如下:
  2.   <?xml version= "1.0"  encoding=”utf- 8 ″?>  
  3.   <LinearLayout  
  4.       android:id=  "@+id/widget28"  
  5.       android:layout_width=  "fill_parent"  
  6.       android:layout_height=  "fill_parent"  
  7.       android:orientation=  "vertical"  
  8.       xmlns:android=  "http://schemas.android.com/apk/res/android"  >  
  9.       <TextView  
  10.           android:id=  "@+id/TextView_Show"  
  11.           android:layout_width=  "fill_parent"  
  12.           android:layout_height=  "wrap_content"  
  13.           android:text=  "你选择的是"  
  14.           android:textSize=  "25sp"  >  
  15.       </TextView>  
  16.       <Spinner  
  17.           android:id=  "@+id/spinner_City"  
  18.           android:layout_width=  "fill_parent"  
  19.           android:layout_height=  "wrap_content"  >  
  20.       </Spinner> <!– 定义一个下拉菜单–>  
  21.   </LinearLayout>

  22.   ( 2 )修改你的SpinnerActy类,在这里我们就要记住五步来自定义一个Spinner了,完整代码及五步注释如下:
  23.    package  com . xtlh . spinner;
  24.    import  java.util.ArrayList;
  25.    import  java.util.List;
  26.    import  android.app.Activity;
  27.    import  android.os.Bundle;
  28.    import  android.view.MotionEvent;
  29.    import  android.view.View;
  30.    import  android.view.View.OnTouchListener;
  31.    import  android.view.animation.Animation;
  32.    import  android.view.animation.AnimationUtils;
  33.    import  android.widget.AdapterView;
  34.    import  android.widget.ArrayAdapter;
  35.    import  android.widget.Spinner;
  36.    import  android.widget.TextView;
  37.    public   class  SpinnerActy  extends  Activity {
  38.        /** Called when the activity is first created. */  
  39.        private  List<String> list =  new  ArrayList<String>();
  40.        private  TextView myTextView;
  41.        private  Spinner mySpinner;
  42.        private  ArrayAdapter<String> adapter;
  43.        private  Animation myAnimation;
  44.        @Override  
  45.        public   void  onCreate(Bundle savedInstanceState) {
  46.            super .onCreate(savedInstanceState);
  47.           setContentView(R.layout.main);
  48.            //第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项  
  49.           list.add( "北京" );
  50.           list.add( "上海" );
  51.           list.add( "深圳" );
  52.           list.add( "南京" );
  53.           list.add( "重庆" );
  54.           myTextView = (TextView)findViewById(R.id.TextView_Show);
  55.           mySpinner = (Spinner)findViewById(R.id.spinner_City);
  56.            //第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。  
  57.           adapter =  new  ArrayAdapter<String>( this ,android.R.layout.simple_spinner_item, list);
  58.            //第三步:为适配器设置下拉列表下拉时的菜单样式。  
  59.           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  60.            //第四步:将适配器添加到下拉列表上  
  61.           mySpinner.setAdapter(adapter);
  62.            //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中  
  63.           mySpinner.setOnItemSelectedListener( new  Spinner.OnItemSelectedListener(){
  64.                public   void  onItemSelected(AdapterView<?> arg0, View arg1,  int  arg2,  long  arg3) {
  65.                    // TODO Auto-generated method stub  
  66.                    /* 将所选mySpinner 的值带入myTextView 中*/  
  67.                   myTextView.setText( "您选择的是:" + adapter.getItem(arg2));
  68.                    /* 将mySpinner 显示*/  
  69.                   arg0.setVisibility(View.VISIBLE);
  70.               }
  71.                public   void  onNothingSelected(AdapterView<?> arg0) {
  72.                    // TODO Auto-generated method stub  
  73.                   myTextView.setText( "NONE" );
  74.                   arg0.setVisibility(View.VISIBLE);
  75.               }
  76.           });
  77.            /*下拉菜单弹出的内容选项触屏事件处理*/  
  78.           mySpinner.setOnTouchListener( new  Spinner.OnTouchListener(){
  79.                public   boolean  onTouch(View v, MotionEvent event) {
  80.                    // TODO Auto-generated method stub  
  81.                    /* 将mySpinner 隐藏,不隐藏也可以,看自己爱好*/  
  82.                   v.setVisibility(View.INVISIBLE);
  83.                    return   false ;
  84.               }
  85.           });
  86.            /*下拉菜单弹出的内容选项焦点改变事件处理*/  
  87.           mySpinner.setOnFocusChangeListener( new  Spinner.OnFocusChangeListener(){
  88.            public   void  onFocusChange(View v,  boolean  hasFocus) {
  89.            // TODO Auto-generated method stub  
  90.               v.setVisibility(View.VISIBLE);
  91.           }
  92.           });
  93.       }
  94.   }

              

----------------------------
原文链接:https://blog.51cto.com/zhangmin/778750

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-04-08 09:39:32 重新编辑]
  Java面向对象编程-->集合(下)
  JavaWeb开发-->JSP技术详解(Ⅰ)
  JSP与Hibernate开发-->立即检索和延迟检索策略
  Java网络编程-->用Spring整合CXF发布Web服务
  精通Spring-->通过Vuex进行状态管理
  Vue3开发-->Vue CLI脚手架工具
  Android中Activity之间的通信
  Android ListView高度问题
  Android在SDcard建文件夹(在Android中移动文件必用)
  Android网络开发-请求队列-性能提升解决方案
  回眸Android发展历史
  Android Adapter使用范例
  Android多屏幕适配
  Android 性能优化之渲染原理
  android 拼图小游戏
  android 自定义view 实现定制二维码扫描框
  Android仿Volley手写属于自己的万能网络访问框架
  安卓sqlite和Listview
  Android ListView与SQLite综合使用(水果商品展示案例)
  Android炫酷菜单
  Android——文章详情页的处理
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。