TimePicker Android

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()是类中的一种方法,当用户选择时间时将调用该方法。