zoukankan      html  css  js  c++  java
  • spinner的使用

    layout.xml:

     <Spinner
                android:layout_width="30dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="150dp"
                android:layout_gravity="center_vertical"
                android:id="@+id/spinner"
                android:entries="@array/timeChoose"
                android:gravity="center"
                android:textSize="20sp"
                android:theme="@style/SpnStyle"
                android:layout_weight="0.08"
                />

    静态设置下拉列表中值的方法:在value/arrays.xml中加入想要显示的值

    <resources>
        <string-array name="timeChoose">                  这里的name一定要定义,后面会用到
                <item>当天</item>
                <item>最近一周</item>
                 <item>最近一月</item>
         </string-array>
    </resources>

    创建MainActivity

    public class MainActivity extends BaseActivity{
        private Spinner spinner;
        private ArrayAdapter dateAdapter;//
        
        public void onCreate(Bundle saveInstaceState){
            super.onCreate(saveInstaceState);
            setContentView(R.layout.testSpinner.xml);
            spinner = (Spinner)findViewById(R.id.spinner);
            /**
            *    createFromResource()中的三个参数:
            *    this:当前上下文
            *    R.array.timeChoose:之前定义的arrays.xml中的string-array,目的是将静态列表内容填充到spinner下拉列表中
            *            simple_spinner_item:下拉列表的一种表现形式
            *    还有一个simple_spinner_dropdown_item
            *    详细了解https://blog.csdn.net/buaaroid/article/details/49332845
            *    文章给出了这两种风格的源码,知识点两个:
            *    TextView中属性:android:ellipsize/android:textAlignmentStyle
            *    详细了解https://blog.csdn.net/qq_26296197/article/details/48209305
            *            https://blog.csdn.net/yihonglvyu1/article/details/53321417
            *    结论:我们可以自定义我们想要的风格
            */
            //填充值
            dateAdapter = ArrayAdapter.createFromResource(this,R.array.timeChoose,android.R.layout.simple_spinner_item);
            dateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(dateAdapter);
            //设置点击事件
            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()){
                
                public void onItemSelected(AdapterView<?>parent,View view,int posiition,long id){
                try{
                    //设置重复点击列表中的内容,每次都会有响应
                    Field field = AdapterView.class.getDeclaredField("mOldselectedPosition");
                    field.setAccessible(true);
                    field.setInt(spinner,AdapterView.INVALID_POSITION);
                }catch(Exception e){
                    e.printStackTrace();
                }
                ........
                }
                public void onNothingSelected(AdapterView<?>parent){
                    //该方法当R.array.timeChoose中为空的时候(也就是下拉列表中没有填充数据时),会响应
                    //https://blog.csdn.net/u012702547/article/details/50598673
                    
                }
            }
            
        }
    }
  • 相关阅读:
    【代码笔记】iOS-字符串替换回车和换行
    【代码笔记】iOS-在Block中修改外部变量值的
    【代码笔记】iOS-在导航栏中显示等待对话框
    【代码笔记】iOS-手机版本号,机型,操作系统版本,设备唯一标识符
    【代码笔记】iOS-密码在进入后台1小时后重新设置
    【代码笔记】iOS-获得现在的时间(2015-09-11)
    【代码笔记】iOS-对数组进行排序
    【代码笔记】iOS-播放从网络上下载的语音
    【代码笔记】iOS-将地址解析成经纬度
    【代码笔记】iOS-长条label
  • 原文地址:https://www.cnblogs.com/yfafa/p/8880915.html
Copyright © 2011-2022 走看看