2014-11-03 72 views
1

我已經創建了簡單的TimePickerDialog,它們是完美的工作,但是如果我已經在時間選擇器中設置了當前時間,那麼就需要設置AM和PM的問題。如何在TimePickerDialog中設置AM/PM?

讓看....

如果當前時間爲:下午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

你想要做 – 2014-11-03 10:45:03

+0

我想設置當前時間下午5時39分在timepicker dialod – 2014-11-03 10:46:51

+1

做什麼@RaviPatel只是打印mHour並檢查它是否是17? – 2014-11-03 10:48:58

回答

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()); 

} 
相關問題