|
@@ -0,0 +1,99 @@
|
|
|
|
|
+package com.mgtech.base_library.util;
|
|
|
|
|
+
|
|
|
|
|
+import android.content.Context;
|
|
|
|
|
+import android.view.View;
|
|
|
|
|
+import android.widget.TextView;
|
|
|
|
|
+
|
|
|
|
|
+import com.bigkoo.pickerview.builder.TimePickerBuilder;
|
|
|
|
|
+import com.bigkoo.pickerview.listener.CustomListener;
|
|
|
|
|
+import com.bigkoo.pickerview.listener.OnTimeSelectListener;
|
|
|
|
|
+import com.bigkoo.pickerview.view.TimePickerView;
|
|
|
|
|
+import com.mgtech.base_library.R;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.Calendar;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @ProjectName: ShellApplication
|
|
|
|
|
+ * @Package: com.tennor.base_library.util
|
|
|
|
|
+ * @ClassName: DateSelectDialogUtil
|
|
|
|
|
+ * @Description: 时间选择器
|
|
|
|
|
+ * @Author: 牛松涛
|
|
|
|
|
+ * @CreateDate: 2020/5/12 13:16
|
|
|
|
|
+ * @UpdateUser: 更新者:
|
|
|
|
|
+ * @UpdateDate: 2020/5/12 13:16
|
|
|
|
|
+ * @UpdateRemark: 更新说明:
|
|
|
|
|
+ * @Version: 1.0
|
|
|
|
|
+ */
|
|
|
|
|
+public class DateSelectDialogUtil {
|
|
|
|
|
+ private Context context;
|
|
|
|
|
+ private TimePickerView timePickerView;
|
|
|
|
|
+ private Calendar startDate,endDate;
|
|
|
|
|
+ private ChooseDateListener chooseDateListener;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public DateSelectDialogUtil(Context context, ChooseDateListener chooseDateListener) {
|
|
|
|
|
+ this.context = context;
|
|
|
|
|
+ this.chooseDateListener = chooseDateListener;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void initCalendar(Date startDateString,Date endDateString){
|
|
|
|
|
+ if (startDate == null)
|
|
|
|
|
+ startDate = Calendar.getInstance();
|
|
|
|
|
+// startDate.set(2013, 0, 23);
|
|
|
|
|
+ startDate.setTime(startDateString);
|
|
|
|
|
+ if (endDate == null)
|
|
|
|
|
+ endDate = Calendar.getInstance();
|
|
|
|
|
+// endDate.set(2019, 11, 28);
|
|
|
|
|
+ endDate.setTime(endDateString);
|
|
|
|
|
+ initTimePicker();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void initTimePicker() {//Dialog 模式下,在底部弹出
|
|
|
|
|
+ Calendar selectedDate = Calendar.getInstance();
|
|
|
|
|
+ timePickerView = new TimePickerBuilder(context, new OnTimeSelectListener() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onTimeSelect(Date date, View v) {
|
|
|
|
|
+ if (chooseDateListener != null)
|
|
|
|
|
+ chooseDateListener.chooseDate(DateFormatUtil.getYmdString(date));
|
|
|
|
|
+ }
|
|
|
|
|
+ }).setLayoutRes(R.layout.layout_pickerview_custom_time, new CustomListener() {
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void customLayout(View v) {
|
|
|
|
|
+ TextView tvSubmit = v.findViewById(R.id.picker_confirm);
|
|
|
|
|
+ TextView ivCancel = v.findViewById(R.id.picker_cancel);
|
|
|
|
|
+ tvSubmit.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onClick(View v) {
|
|
|
|
|
+ timePickerView.returnData();
|
|
|
|
|
+ dialogDismiss();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ ivCancel.setOnClickListener(v1 -> dialogDismiss());
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .setType(new boolean[]{true, true, true, false, false, false})
|
|
|
|
|
+ .setLabel("", "", "", "", "", "")
|
|
|
|
|
+ .setDate(selectedDate)
|
|
|
|
|
+ .setRangDate(startDate, selectedDate)
|
|
|
|
|
+ .setLineSpacingMultiplier(2.0f)
|
|
|
|
|
+ .build();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void dialogShow(Date startDateString,Date endDateString){
|
|
|
|
|
+ initCalendar(startDateString, endDateString);
|
|
|
|
|
+ if (timePickerView != null && !timePickerView.isShowing())
|
|
|
|
|
+ timePickerView.show();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void dialogDismiss(){
|
|
|
|
|
+ if (timePickerView != null && timePickerView.isShowing())
|
|
|
|
|
+ timePickerView.dismiss();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public interface ChooseDateListener{
|
|
|
|
|
+ void chooseDate(String date);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|