首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimePicker安卓

TimePicker安卓
EN

Stack Overflow用户
提问于 2012-02-17 07:57:06
回答 3查看 6.9K关注 0票数 2

我正在用android做一个简单的闹钟,我想在我想要的任何时间设置闹钟,但我不知道怎么做。我有一个布局,其中我有timepicker,现在从这行代码alarmManager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + (5 * 1000),sender);我想从timepicker的布局中选择自己的时间。我引用了时间选择器

代码语言:javascript
复制
TimePicker addtime;
ddtime = (TimePicker) findViewById(R.id.addtime);

如何实际获取timepicker中的时间值?

EN

回答 3

Stack Overflow用户

发布于 2012-05-11 18:08:02

您需要的是将您想要的数据保存在一些变量中,以便以后使用。安卓有你可以使用的TimePickerDialog和DatePickerDialog:

代码语言:javascript
复制
// 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();
        }
    };

不要忘记,如果您想要使用这两个对话框,则需要为每个对话框指定不同的id。

票数 1
EN

Stack Overflow用户

发布于 2012-02-17 08:13:13

你可能需要一个TimePickerDialog。

需要在您的类中定义侦听器:

代码语言:javascript
复制
private TimePickerDialog.OnTimeSetListener mTimeListener =
    new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hour, int minute) {
            mHour = hour;
            mMinute = minute;
            updateDisplay();
        }
    };

在onCreate()中:

代码语言:javascript
复制
    Button timeButton = (Button) findViewById(R.id.time_entry_button);
    timeButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            showDialog(TIME_DIALOG_ID);
        }
    });

在onCreateDialog()中:

代码语言:javascript
复制
    switch (id) {
        case TIME_DIALOG_ID:
            return new TimePickerDialog(this, mTimeListener, mHour, mMinute, true);

    }

其中updateDisplay()是类中的一个方法,当用户选择了某个时间后将调用该方法。

票数 0
EN

Stack Overflow用户

发布于 2012-02-17 08:41:01

代码看起来不错,您只需要在上面给出的onTimeSet()方法中实现必要的代码;当您想要获取字符串timeString,然后将该字符串设置为按钮时,下面给出了一个通用示例:

代码语言:javascript
复制
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);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9320979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档