我想通過timePickerDialog獲取AM/PM值。我的代碼是這樣的,它正在通過用戶通過timepickerdialog輸入並設置警報。在這裏我得到用戶輸入如何獲取TimePickerDialog AM PM值
datetime = Calendar.getInstance();
new TimePickerDialog(this,this,datetime.get(Calendar.HOUR),datetime.get(Calendar.MINUTE),false).show();
現在當onTimeSet函數調用,我可以得到用戶選擇的時,分,但沒能獲得該用戶所選擇的AM/PM值。這裏是其他代碼
public void onTimeSet(TimePicker view, int hourOfDay, int minute) { try { Calendar time = Calendar.getInstance();
String am_pm;
if (datetime.get(Calendar.AM_PM) == Calendar.AM)
am_pm = "AM";
else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
am_pm = "PM";
time.set(Calendar.HOUR, hourOfDay);
time.set(Calendar.MINUTE, minute);
//time.set(Calendar.SECOND, 0);
//time.set(Calendar.MILLISECOND, 0);
//time.set(Calendar.AM_PM,datetime.PM);
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
alarmMgr.set(AlarmManager.RTC_WAKEUP,time.getTimeInMillis(), pendingIntent);
Toast.makeText(this, "Alarm Set", Toast.LENGTH_long);
@ Philipp Reichart謝謝你的回覆。我從下面的帖子中得到了理解。現在我不是在談論AM AM值。當用戶選擇時,我得到了android將它轉換爲24小時格式的答案。但在設置了我的「時間」對象(上面的代碼)的Hour_Of_Day和分鐘參數後。我調用set方法並調用time.getTimeInMillis()。但問題是,當我設置第二天的時間(比如說我現在的系統時間是晚上9點,我設置了第二天的晚上8點),但是alarmManager會立即觸發警報。你能指導我嗎? – 2011-12-23 20:09:17