我想通过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