相关疑难解决方法(0)

Jelly Bean DatePickerDialog ---有没有办法取消?

--- 主持人注意:今天(7月15日),我注意到有人在这里遇到过这个问题.但是我不确定将这个作为副本关闭是否合适,因为我认为我提供了一个更好的解释.我不确定是否应该编辑其他问题并将其粘贴到那里,但我不太愿意过多地改变别人的问题.---

我有一些奇怪的东西.

我不认为问题取决于您构建的SDK.设备操作系统版本是重要的.

问题#1:默认情况下不一致

DatePickerDialog在Jelly Bean中被更改了(?),现在只提供了一个Done按钮.以前的版本包括一个取消按钮,这可能会影响用户体验(不一致,以前Android版本的肌肉记忆).

复制:创建一个基本项目.把它放进去onCreate:

DatePickerDialog picker = new DatePickerDialog(
        this,
        new OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker v, int y, int m, int d) {
                Log.d("Picker", "Set!");
            }
        },
        2012, 6, 15);
picker.show();
Run Code Online (Sandbox Code Playgroud)

预期:在对话框中显示"取消"按钮.

当前:一个取消按钮不会出现.

截图: 4.0.3(OK)和 4.1.1(可能错误?).

问题#2:错误的解雇行为

Dialog会调用它应该调用的侦听器,然后始终调用OnDateSetListener侦听器.取消仍然调用set方法,并设置它调用方法两次.

复制:使用#1代码,但在下面添加代码(您将看到这解决了#1,但只能在视觉上/ UI):

picker.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", 
        new DialogInterface.OnClickListener() {
            @Override
            public …
Run Code Online (Sandbox Code Playgroud)

android datepicker android-datepicker android-4.2-jelly-bean

147
推荐指数
3
解决办法
3万
查看次数

在解除TimePickerDialog时也会调用OnTimeSet

今天我试图使用它,TimePickerDialog但我注意到了一些缺陷.

  1. 在关闭对话框时也会调用OnTimeSet(例如,通过单击外部)
  2. 当用户点击"完成"按钮时,OnTimeSet被调用两次

我使用的API是18.

还有其他人遇到过这些问题吗?你是怎么解决的?

android timepicker

26
推荐指数
3
解决办法
6710
查看次数