PickerView的簡單介紹

PickerView現在在大多數App都有使用到,例如設置時間的時候,或者選擇地區的時候,使用PickerView來實現很實用,在底部彈出個對話框,接着進行選擇就可以了,而且OptionsPickerView還支持三級聯動,支持自定義佈局等功能,接下來就簡單的用代碼實現一個小Demo:

首先就是要添加依賴啦,具體的版本自己選擇

//實際引入請把"3.x"替換成具體版本號,最新版本號請以GitHub上面提供的爲準
implementation'com.contrarywind:Android-PickerView:3.x'

然後在佈局中定義一個Button,然後爲這個Button設置點擊事件,定義數據,把數據加入到List中,我這邊是根據時間來定義的,把數據寫死了,也有其他更好的方法,可以問度娘

 final List<String> options1Items = new ArrayList<>();
        options1Items.add(getResources().getString(R.string.morning));
        options1Items.add(getResources().getString(R.string.afternoon));

        final List<String> options2Items = new ArrayList<>();

        for (int i = 0; i <= 12; i++) {
            if (i < 10) {
                options2Items.add("0" + i);
            } else {
                options2Items.add(i + "");
            }

        }

        final List<String> options3Items = new ArrayList<>();
        for (int i = 0; i < 60; i++) {
            if (i < 10) {
                options3Items.add("0" + i);
            } else {
                options3Items.add(i + "");
            }

        }

接着就是重點了,構建一個OptionsPickerView


        OptionsPickerView pvOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
            @Override
            public void onOptionsSelect(int options1, int options2, int options3, View v) {
                if (getResources().getString(R.string.monning_text).equals(options1Items.get(options1))){
                    text_12 =options2;
                }else {
                    text_12 = 12 + options2;

                }
                //網絡請求
                getP().drinkWaterSetting(token, userId, "", "1", text_12 +
                        ":"+options3Items.get(options3), "", "2");
                Log.e("SHAN", "onOptionsSelect: " + userId );
                showTs("添加成功");
            }
        })
                //設置選中項文字顏色
                .setTextColorCenter(getResources().getColor(R.color.black_333333)) 
                //設置文字大小
                .setContentTextSize(15)
                //設置彈框的標題
                .setTitleText(getResources().getString(R.string.set_time))
                //設置點擊其他區域取不取消彈窗
                .setOutSideCancelable(false)
                //設置取消文字的顏色
                .setCancelColor(getResources().getColor(R.color.black_333333))
                //設置確定文字的顏色
                .setSubmitColor(getResources().getColor(R.color.black_333333))
                //設置標題文字的顏色
                .setTitleColor(getResources().getColor(R.color.black_333333))
                .setSubCalSize(15)
                .setTitleSize(18)
                .build();

        //這裏要把數據Set進去    
        pvOptions.setNPicker(options1Items, options2Items, options3Items);
         //最後一定要調用show方法,不然顯示不出來
        pvOptions.show();

代碼大概就是這樣,效果圖如下,OptionsPickerView還有很多樣式可以設置,比如自定義標題欄等等,這些我就不一一列舉了,大家可以根據自己的需求去設計。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章