Open adazhdw opened 4 years ago
if (TextUtils.isEmpty(selectTime)) pvTime.setDate(Calendar.getInstance());//设置选中时间 else{ try { Date date = getFormat().parse(selectTime); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); pvTime.setDate(calendar); } catch (ParseException e) { e.printStackTrace(); } } /* pvTime.show(); //show timePicker*/ pvTime.show(v);//弹出时间选择器,传递参数过去,回调的时候则可以绑定此view
pvTime = new TimePickerBuilder(this, new OnTimeSelectListener() { @Override public void onTimeSelect(Date date, View v) { selectTime = getTime(date); Toast.makeText(MainActivity.this, selectTime, Toast.LENGTH_SHORT).show(); Log.i("pvTime", "onTimeSelect"); } }) .setRangDate(Calendar.getInstance(),calendar)//设置时间范围限制 .setTimeSelectChangeListener(new OnTimeSelectChangeListener() { @Override public void onTimeSelectChanged(Date date) { Log.i("pvTime", "onTimeSelectChanged"); } }) .setType(new boolean[]{true, true, true, true, true, true}) .isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。 .addOnCancelClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.i("pvTime", "onCancelClickListener"); } }) .setItemVisibleCount(5) //若设置偶数,实际值会加1(比如设置6,则最大可见条目为7) .setLineSpacingMultiplier(2.0f) .isAlphaGradient(true) .build();
两个限制情况会导致选中时间当前月份的日期少掉一部分。 举个栗子:今天是2020-01-14 ,我选了2020-02-02的时间,下次设置选中时间显示dialog,2月份的时间14号之前的就不显了,显示的是1月份的。而且选中的时候也是从1号开始。也就是 14号代表1号,15号代表2号,这样的。
+1 貌似4.1.8及以下没有这个问题
两个限制情况会导致选中时间当前月份的日期少掉一部分。 举个栗子:今天是2020-01-14 ,我选了2020-02-02的时间,下次设置选中时间显示dialog,2月份的时间14号之前的就不显了,显示的是1月份的。而且选中的时候也是从1号开始。也就是 14号代表1号,15号代表2号,这样的。