2014-11-03 1 views
1

Я создал простой TimePickerDialog, они отлично работают, но если я установил текущее время в выборе времени, тогда проблема установить AM и PM.Как установить AM/PM в TimePickerDialog?

позволяют увидеть ....

Если Текущее время: 5:39 вечера

это мой код ..

Calendar cal = Calendar.getInstance(); 
int mHour = cal.get(Calendar.HOUR_OF_DAY); 
int mMinute = cal.get(Calendar.MINUTE); 
int mTimeSet=cal.get(Calendar.AM_PM); 
TimePickerDialog tpd = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() 
     { 
        @Override 
        public void onTimeSet(TimePicker view, int hours,int minute) 
        { 
         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 (minute < 10) 
          minutes = "0" + minute; 
         else 
          minutes = String.valueOf(minute); 
         textView.setText(hours + ":" + minutes + " " + timeSet); 
        } 
       }, mHour, mMinute,false); 

     tpd.show(); 

Результат

enter image description here

Но как установить PM в диалоговом окне выбора времени? пожалуйста, любое решение

+0

, что вы хотите сделать –

+0

я хочу, чтобы установить текущее время 5:39 PM в timepicker dialod –

+1

@RaviPatel просто напечатайте mHour и проверьте, не является ли это 17 или нет? –

ответ

2
public void onTimeSet(TimePicker view, int hourOfDay, int minute) 
{ 
String am_pm = ""; 
Calendar datetime = Calendar.getInstance(); 
datetime.set(Calendar.HOUR_OF_DAY, hourOfDay); 
datetime.set(Calendar.MINUTE, minute); 

if (datetime.get(Calendar.AM_PM) == Calendar.AM) 
    am_pm = "AM"; 
else if (datetime.get(Calendar.AM_PM) == Calendar.PM) 
    am_pm = "PM"; 
String strHrsToShow = (datetime.get(Calendar.HOUR) == 0) ?"12":datetime.get(Calendar.HOUR)+""; 

((Button)getActivity().findViewById(R.id.btnEventStartTime)).setText(
    strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm); 
} 

TimePickerDialog and AM or PM

1
private void updateTime(int hours, int mins) { 

     String timeSet = ""; 
     if (hours > 12) { 
      timeSet = "PM"; 
      hours -= 12; 
     } else if (hours == 0) { 
      timeSet = "AM"; 
      hours += 12; 
     } 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(); 

      output.setText(aTime); 
    } 
1

попробовать, как это,

public void onTimeSet(TimePicker view, int hourOfDay, int minute) 
{ 

Calendar date = Calendar.getInstance(); 
date.set(Calendar.HOUR_OF_DAY, hourOfDay); 
date.set(Calendar.MINUTE, minute); 
date.set(Calendar.AM_PM, date.get(Calendar.AM_PM)); 


textView.setText(date.getTime()); 

}