TimePickerDialog取消按钮

ron*_*ron 3 android

我有一个活动 - TimePickerActivity - 它创建一个TimePickerDialog.我有一个onTimeSetListener响应Set按钮,在它结束时调用finish()并返回调用TimePickerActivity的活动.我希望它完成并返回如果单击取消按钮但无法找到任何方法来执行此操作.我用谷歌搜索并尝试了几个建议,但似乎没有一个工作.有什么简单的方法吗?

mai*_*450 9

只需将onCancelListener传递给TimePicker.setOnCancelListener()

编辑:在Ron实现问题之后我决定实际测试自己的代码(我只是回答了API)并且我发现即使代码是正确的(我想你在我的代码编译好的时候有一个错字),当单击取消按钮它没有按预期响应...

看来当你单击cancel按钮时,Dialog不会调用cancel()触发方法,OnCancelListener因为它看起来很明显,但是dismiss()触发的方法OnDismissListener很奇怪......

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

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();
Run Code Online (Sandbox Code Playgroud)

这个 SO答案的所有功劳......

  • 单击确定按钮时是否也会触发onDismiss侦听器? (7认同)