TimePicker Android
我正在用android制作一个简单的闹钟,我想随时设置闹钟,但我不知道该怎么办。
我有一个布局,其中有时间选择器,现在从这行代码alarmManager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()(5 * 1000),sender);
我想做我自己的时间,我从时间选择器的布局中选择了自己的时间。
我已引用时间选择器
1 2 | TimePicker addtime; ddtime = (TimePicker) findViewById(R.id.addtime); |
如何实际获取时间选择器中的时间值?
您需要的是将所需的数据保存在某些变量中,以便以后使用。
Android具有您可以使用的TimePickerDialog和DatePickerDialog:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // the callback received when the user"sets" the date in the dialog private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; updateDisplay(); } }; // the callback received when the user"sets" the time in the dialog private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { mHour = hourOfDay; mMinute = minute; updateDisplay(); } }; |
Do not forget that if you want to use the two dialogs you will need to have a different id for each one.
代码看起来不错,您只需要在上面给出的onTimeSet()方法中实现必要的代码即可;下面是一个通用示例,当您想要获取字符串timeString然后将该字符串设置为按钮时-
1 2 3 4 5 6 7 8 9 10 11 12 | private TimePickerDialog.OnTimeSetListener mTimeListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hour, int minute) { updateTime(hour, minute); } }; public void updateTime(int hour, int minute) { String timeString = new StringBuilder().append(String.valueOf(hour)) .append(":").append(String.valueOf(minute)).ToString(); btnEventTimeFrom.setText(timeString); } |
您可能想要一个TimePickerDialog。
需要在您的课程中定义的侦听器:
1 2 3 4 5 6 7 8 | private TimePickerDialog.OnTimeSetListener mTimeListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hour, int minute) { mHour = hour; mMinute = minute; updateDisplay(); } }; |
在onCreate()中:
1 2 3 4 5 6 | Button timeButton = (Button) findViewById(R.id.time_entry_button); timeButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showDialog(TIME_DIALOG_ID); } }); |
在onCreateDialog()中:
1 2 3 4 5 | switch (id) { case TIME_DIALOG_ID: return new TimePickerDialog(this, mTimeListener, mHour, mMinute, true); } |
updateDisplay()是类中的一种方法,当用户选择时间时将调用该方法。