zoukankan      html  css  js  c++  java
  • android spinner的一些用法

    参考:
    Android:控件Spinner实现下拉列表 - tinyphp - 博客园
    http://www.cnblogs.com/tinyphp/p/3858920.html

    Spinner在初始化时会自动调用一次OnItemSelectedListener事件
    原因:有人说是Bug,其实这与C#的事件机制类似,这个我也不懂。
    提供的解决办法:在事件注册之前调用

    spinner.setSelection(0, true);

    • 方法一:动态展示,java代码实现,用适配器给Spinner添加数据
    /**
    
         * 分类查找方法
    
         */
        private void sortMehtod() {
            //数据
    
            ArrayList<String> data_list = new ArrayList<String>();
            data_list.add("全部分类");
            data_list.add("原创协议");
            data_list.add("我的关注");
            data_list.add("我的发布");
            data_list.add("伙伴协议");
            data_list.add("客户协议");
            
            //适配器
    
            ArrayAdapter<String> arr_adapter= new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, data_list);
            //设置样式
            arr_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            //加载适配器
            spinner.setAdapter(arr_adapter);
            //一定要用这个函数,不然会自动调用OnItemListener这个函数
            spinner.setSelection(0,true);
            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view,
                        int position, long id) {
                    sortId=position;
                    ToastUtils.show(context, "哈啊哈"+position);
    //                onRefresh();               
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                    // TODO Auto-generated method stub               
                }
            });
            
        }

    控件布局

        <Spinner
            android:id="@+id/payment_spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/icon_spinner_bkg" />
    • 方法二:静态展示,xml布局实现,用资源文件给Spinner添加数据:android:entries="@array/sort_array"   指定数据源。

    在布局中指定数据:

         <Spinner
                android:id="@+id/sort_trade_spinner"
                android:layout_width="0dp"
                android:layout_height="32dp"
                android:layout_weight="1.0"
                android:background="@drawable/icon_spinner_bkg"
                android:entries="@array/sort_array"
                android:padding="5dip" />

    数据文件:sort_array数据:

        <string-array name="sort_array">
            <item>全部分类</item>
            <item>原创协议</item>
            <item>我的关注</item>
            <item>我的发布</item>
            <item>伙伴协议</item>
            <item>客户协议</item>
        </string-array>

    Spinner选择监听,java代码:

    private Spinner tradeSpinner;
    tradeSpinner = getView(R.id.sort_trade_spinner);
    tradeSpinner.setSelection(0, true);
    tradeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    
                        @Override
                        public void onItemSelected(AdapterView<?> parent,
                                View view, int position, long id) {
                            sortId = position;
                        }
    
                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {
                            // TODO Auto-generated method stub
                        }
                    });
        }

     取得选择位置:从0开始

     int position = typeSpinner.getSelectedItemPosition();

    效果图:

    • 方法三 自定义

    自定义Spinner - 皮皮鲁西西 - 博客园
    http://www.cnblogs.com/xiaobijia/p/5377818.html

  • 相关阅读:
    day5 元组,字典,集合
    day4预习
    day4字符串、列表
    day3预习
    day3 数据类型
    day2 python 基础入门
    动态三角形(动态规划思想入门)
    百度之星资格赛
    Audiophobia(Floyd算法)
    Hat’s Words(字典树的运用)
  • 原文地址:https://www.cnblogs.com/xiaobijia/p/5329935.html
Copyright © 2011-2022 走看看