首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimePickerDialog取消按钮

TimePickerDialog取消按钮
EN

Stack Overflow用户
提问于 2011-01-18 21:46:45
回答 6查看 10.6K关注 0票数 4

我有一个创建TimePickerDialog的activity -- TimePickerActivity。我有一个onTimeSetListener,它响应Set按钮,最后调用finish()并返回到调用TimePickerActivity的活动。如果单击了Cancel按钮,但找不到任何方法,我希望它完成并返回。我在谷歌上搜索并尝试了几个建议,但似乎没有一个有效。有什么简单的方法可以做到这一点吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-18 21:58:32

只需向TimePicker.setOnCancelListener()传递一个onCancelListener

编辑:在Ron的实现问题之后,我决定实际测试一下代码(我只是看着API回答),我发现即使代码是正确的(我猜你在我的代码编译ok的时候有一个拼写错误),当单击cancel按钮时,它没有按预期响应……

当您单击cancel按钮时,对话框似乎并不像看起来那样调用触发OnCancelListenercancel()方法,但是触发OnDismissListenerdismiss()方法却非常奇怪……

所以这段代码对我来说运行得很好:

代码语言:javascript
复制
TimePickerDialog.OnTimeSetListener mTimeSetListener = new OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        //time set stuff
    }
};
TimePickerDialog myTPDialog = new TimePickerDialog(this,mTimeSetListener,0,0,false);
myTPDialog.setOnDismissListener(new OnDismissListener() {
    public void onDismiss(DialogInterface dialog) {
        // Cancel code here
    }
});
myTPDialog.show();

所有功劳都归功于this所以回答..。

票数 9
EN

Stack Overflow用户

发布于 2011-08-01 03:37:50

下面是我是如何做到的:

代码语言:javascript
复制
TimePickerDialog tp = new TimePickerDialog(this, mTimeSetListener, 0, 0, false);
tp.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which)
    {
        if (which == DialogInterface.BUTTON_NEGATIVE)
        {
            tbTimer.setChecked(false);
        }
    }
});
票数 4
EN

Stack Overflow用户

发布于 2017-07-26 00:06:15

代码语言:javascript
复制
TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hour, int minute) {
            //ok button clicked 
    }
};

Calendar c = Calendar.getInstance();
int now_hour = c.get(Calendar.HOUR_OF_DAY);
int now_minutes = c.get(Calendar.MINUTE);

final TimePickerDialog timePickerDialog = new TimePickerDialog(this, timePickerListener, now_hour, now_minutes + 1, false);

timePickerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
    @Override
    public void onCancel(DialogInterface dialog) {
        //cancel button clicked
    }
});

timePickerDialog.show();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4724781

复制
相关文章

相似问题

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