果冻豆DatePickerDialog-是否可以取消?
--- 主持人注意:今天(7月15日),我注意到这里已经有人遇到了这个问题。但是我不确定是否应该将此重复项关闭,因为我认为我对此问题提供了更好的解释。我不确定是否应该编辑另一个问题并将此内容粘贴到那里,但是我不太愿意改变别人的问题。--- 我这里有些奇怪。 我认为问题不取决于您针对哪个SDK开发。设备操作系统的版本很重要。 问题1:默认情况下不一致 DatePickerDialog已在Jelly Bean中更改(?),现在仅提供了“完成”按钮。以前的版本包括“ 取消”按钮,这可能会影响用户体验(不一致,以前的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(); 预计:一个取消按钮出现在对话框中。 当前: “取消”按钮没有出现。 屏幕截图: 4.0.3(确定)和 4.1.1(可能是错误的?)。 问题2:错误的解雇行为 对话框调用确实应调用的任何侦听器,然后始终调用OnDateSetListener侦听器。取消仍然会调用set方法,设置它会调用两次方法。 复制:使用#1代码,但在下面添加代码(您将看到此代码解决了#1,但仅在视觉上/ UI): picker.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", …