Android开发:安卓选择器类库,包括日期选择器、时间选择器、文件选择器、目录选择器等

项目中用到了时间选择器和单文本选择器,选择了这个AndroidPicker/WheelPicker库,感觉还不错,挺好用,把事例写一下。

github地址:https://github.com/gzu-liyujiang/AndroidPicker

一、引入依赖

第一步,在项目根目录下的build.gradle里加:

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

第二步,在项目的app模块下的build.gradle里加: 滚轮选择器:

implementation('com.github.gzu-liyujiang.AndroidPicker:WheelPicker:1.5.6') {
    exclude group: 'com.android.support'
}

除了时间选择器,还有日期、城市、文件选择器等,如果有需要,可按上面github地址查找。

二、具体使用

调用:

 /**
     * 点击事件
     */
    private View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.tv_back:
                    finish();
                    break;
                case R.id.llCarNum:
                    onSinglePicker(llCarNum);
                    break;
                case R.id.llTime:
                    onYearMonthDayPicker(llTime);
                    break;
                default:
                    break;
            }
        }
    };

 

  /**
     * 时间选择器
     *
     * @param view 父控件
     */
    public void onYearMonthDayPicker(View view) {
        final DatePicker picker = new DatePicker(this);
        picker.setCanceledOnTouchOutside(true);
        picker.setUseWeight(true);
        picker.setTopPadding(ConvertUtils.toPx(this, 10));
        picker.setRangeEnd(2111, 1, 11);
        picker.setRangeStart(2000, 10, 1);
        picker.setSelectedItem(2019, 10, 1);
        picker.setResetWhileWheel(false);
        picker.setSubmitTextColor(getResources().getColor(R.color.blue_main));
        picker.setCancelTextColor(getResources().getColor(R.color.blue_main));
        picker.setTextColor(getResources().getColor(R.color.blue_main));
        picker.setOnDatePickListener(new DatePicker.OnYearMonthDayPickListener() {
            @Override
            public void onDatePicked(String year, String month, String day) {
//                ToastUtil.showToast(context, year + "-" + month + "-" + day);
//选中后的逻辑操作
                tvTime.setText(String.format("%s-%s-%s", year, month, day));
                loadData(tvTime.getText().toString(), carId);
            }
        });
        picker.setOnWheelListener(new DatePicker.OnWheelListener() {
            @Override
            public void onYearWheeled(int index, String year) {
                picker.setTitleText(year + "-" + picker.getSelectedMonth() + "-" + picker.getSelectedDay());
            }

            @Override
            public void onMonthWheeled(int index, String month) {
                picker.setTitleText(picker.getSelectedYear() + "-" + month + "-" + picker.getSelectedDay());
            }

            @Override
            public void onDayWheeled(int index, String day) {
                picker.setTitleText(picker.getSelectedYear() + "-" + picker.getSelectedMonth() + "-" + day);
            }
        });
        picker.show();
    }

 

 

/**
     * 车辆选择器
     * CarList.Cars 实体类
     * carsResource 数据源
     *
     * @param view 父控件
     */
    public void onSinglePicker(View view) {
        SinglePicker<CarList.Cars> picker = new SinglePicker<>(this, carsResource);
        picker.setCanceledOnTouchOutside(false);
        picker.setSelectedIndex(1);
        picker.setCycleDisable(false);
        picker.setSubmitTextColor(getResources().getColor(R.color.blue_main));
        picker.setCancelTextColor(getResources().getColor(R.color.blue_main));
        picker.setTextColor(getResources().getColor(R.color.blue_main));
        picker.setOnItemPickListener(new SinglePicker.OnItemPickListener<CarList.Cars>() {
            @Override
            public void onItemPicked(int index, CarList.Cars item) {
                carId = item.car_id;
                tvCarNum.setText(item.car_num);
                loadData(tvTime.getText().toString(), item.car_id);
            }
        });
        if (picker != null) {
            picker.show();
        }
    }

 

以上就是具体的使用方法了,更多信息,请查看GitHub网站,地址在文章开头。 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值