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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM