如何禁用android中的计时器选择器对话框上的过去时间

roh*_*hit 4 android android-timepicker

这是我的代码.请解释如何使用时间选择器对话框禁用过去的时间,并给出一些代码如何在此代码中禁用过去的时间以及如何使用android时间选择器对话框应用它.时间选择器对话框类没有任何setMinTime方法以及如何获取它.

time.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Calendar mcurrentTime = Calendar.getInstance();
            int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
            int minute = mcurrentTime.get(Calendar.MINUTE);

            TimePickerDialog mTimePicker;

            mTimePicker = new TimePickerDialog(
                    FillServiceDetailActivity.this,
                    new TimePickerDialog.OnTimeSetListener() {
                        @Override
                        public void onTimeSet(TimePicker timePicker,
                                              int selectedHour, int selectedMinute) {
                            String AM_PM;
                            int hour;
                            String[] sp=currentTime.split(":");

                            int hour1=Integer.parseInt(sp[0]);
                            int min1=Integer.parseInt(sp[1]);
                            //Toast.makeText(FillServiceDetailActivity.this,"selected hour:\t"+String.valueOf(selectedHour),Toast.LENGTH_LONG).show();
                            String timeSet = "";
                            if (selectedHour > 12 && hour1>12) {
                                selectedHour -= 12;
                                hour1-=12;
                                timeSet = "PM";
                            } else if (selectedHour == 0) {
                                selectedHour += 12;

                                timeSet = "AM";
                            } else if (selectedHour == 12)

                                timeSet = "PM";
                            else
                                timeSet = "AM";


                            String minutes = "";
                            if (selectedMinute < 10)
                                minutes = "0" + selectedMinute;
                            else
                                minutes = String.valueOf(selectedMinute);

                            /*if(selectedHour>12) {

                                hour = selectedHour - 12;
                                    AM_PM = "PM";

                            }   else  if(selectedHour==12)
                            {
                                hour=selectedHour;
                                AM_PM="PM";
                            }
                            else {
                                hour=selectedHour;
                                AM_PM="AM";
                            }*/

                            //Toast.makeText(FillServiceDetailActivity.this,String.valueOf(hour1),Toast.LENGTH_LONG).show();
                            //Toast.makeText(FillServiceDetailActivity.this,String.valueOf(selectedHour),Toast.LENGTH_LONG).show();

                                time.setText(selectedHour + ":" + minutes + "\t" + timeSet);




                        }
                    }, hour, minute, false);// Yes 24 hour time
            mTimePicker.setTitle("Select Time");

            mTimePicker.show();


        }
    });
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.谢谢

Vis*_*iya 6

有关详细信息,请访问此页面.

使用此库.

在此输入图像描述

依赖

 dependencies {
      compile 'com.wdullaer:materialdatetimepicker:2.3.0'
    }
Run Code Online (Sandbox Code Playgroud)

用这个来显示Dialog

Calendar now = Calendar.getInstance();
                TimePickerDialog tpd = TimePickerDialog.newInstance(
                        MainActivity.this,
                        now.get(Calendar.HOUR_OF_DAY),
                        now.get(Calendar.MINUTE),
                        mode24Hours.isChecked()
                );
                tpd.setThemeDark(modeDarkTime.isChecked());
                tpd.vibrate(vibrateTime.isChecked());
                tpd.dismissOnPause(dismissTime.isChecked());
                tpd.enableSeconds(enableSeconds.isChecked());
                if (modeCustomAccentTime.isChecked()) {
                    tpd.setAccentColor(Color.parseColor("#9C27B0"));
                }
                if (titleTime.isChecked()) {
                    tpd.setTitle("TimePicker Title");
                }
                if (limitTimes.isChecked()) {
                    tpd.setTimeInterval(2, 5, 10);
                }
                tpd.setOnCancelListener(new DialogInterface.OnCancelListener() {
                    @Override
                    public void onCancel(DialogInterface dialogInterface) {
                        Log.d("TimePicker", "Dialog was cancelled");
                    }
                });
                tpd.show(getFragmentManager(), "Timepickerdialog");
Run Code Online (Sandbox Code Playgroud)

用户选择时间时从对话框获取时间.

@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
  String time = "You picked the following time: "+hourOfDay+"h"+minute;
  timeTextView.setText(time);
}
Run Code Online (Sandbox Code Playgroud)

用它来设置最短时间

setMinTime(Timepoint time)
Run Code Online (Sandbox Code Playgroud)

tpd.setMinTime(now2.get(Calendar.HOUR_OF_DAY),now2.get(Calendar.MINUTE),
                        now2.get(Calendar.SECOND));
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,MinTime是当前时间.

方法setMinTime有三个参数小时,分钟,秒;

setMinTime(5,0,0); // By using this minTime is set to 5 'o clock.