2017-03-09 8 views
0

ここに私のコードは、私はtimepickerのdilogで将来の時間を制限したいです。timepicker dilogの将来の時間を制限したい

private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() { 


     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minutes) { 
      // TODO Auto-generated method stub 


      hour = hourOfDay; 
      minute = minutes; 

      updateTime(hour, minute); 

     } 

    }; 

    private static String utilTime(int value) { 

     if (value < 10) 
      return "0" + String.valueOf(value); 
     else 
      return String.valueOf(value); 
    } 

    // Used to convert 24hr format to 12hr format with AM/PM values 
    private void updateTime(int hours, int mins) { 

     String timeSet = ""; 
     if (hours > 12) { 
      hours -= 12; 
      timeSet = "PM"; 
     } else if (hours == 0) { 
      hours += 12; 
      timeSet = "AM"; 
     } else if (hours == 12) 
      timeSet = "PM"; 
     else 
      timeSet = "AM"; 


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

     // Append in a StringBuilder 
     String aTime = new StringBuilder().append(hours).append(':') 
       .append(minutes).append(" ").append(timeSet).toString(); 

     txttime.setText(aTime); 

     SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm"); 
     SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a"); 
     Date date = null; 
     try { 
      date = parseFormat.parse(aTime.toString()); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     System.out.println(parseFormat.format(date) + " = " + displayFormat.format(date)); 
     Log.e("date :", "date is " + displayFormat.format(date)); 

     timeconvert = displayFormat.format(date).toString(); 
     Log.e("timeconvert :", "time is " + timeconvert.toString()); 

    }**strong text** 
+0

を、それを追加することです時間と現在の日付時刻? – Radhey

+0

はい正確に.... –

+0

http://stackoverflow.com/questions/13516389/android-timepickerdialog-set-max-time – Radhey

答えて

0

あなたのための最善の解決策は、時間または日付とセット分の値を選択するthis材料設計ライブラリを使用するようになります。

TimePickerDialog tpd = TimePickerDialog.newInstance(
     new TimePickerDialog.OnTimeSetListener() { 
      @Override 
      public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) { 
       //put some interesting code 
      } 
     }, 
     now.get(Calendar.HOUR_OF_DAY), 
     now.get(Calendar.MINUTE), 
     true 
    ); 
     Calendar now = Calendar.getInstance(); 
     Timepoint mTimepoint = new Timepoint(now.get(Calendar.HOUR),now.get(Calendar.MINUTE),now.get(Calendar.SECOND)); 
     tpd.setMaxTime(mTimepoint); 
    tpd.show(getFragmentManager(), "TimePickerDialog"); 

プロジェクトに素材のDateTimeピッカーライブラリを追加する最も簡単な方法は、あなただけの過去の日付にしたいあなたのbuild.gradleに依存関係として

dependencies { 
    compile 'com.wdullaer:materialdatetimepicker:3.0.0' 
} 
0
Calendar now = Calendar.getInstance(); 

timePickerDialog.setMaxTime(now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE),now.get(Calendar.SECOND));} 
+0

私はそれでsetMaxTimeを解決することはできません。 –