我使用下一个datePicker插件:
https://github.com/phonegap/phonegap-plugins/tree/master/Android/DatePicker
如何识别用户何时按下“取消”按钮?:
控制器的图像:http://goo.gl/YUzus
我使用的代码是:
window.plugins.datePicker.show({
date : new Date(date),
mode : 'date',
allowOldDates : true
},function(selectedDate) {
console.log('SET button was pressed');
});
由于
答案 0 :(得分:1)
我管理了取消事件,修改了一些.java插件: 在代码之后
public void run() {
final DateSetListener dateSetListener = new DateSetListener(datePickerPlugin, callBackId);
final DatePickerDialog dateDialog = new DatePickerDialog(currentCtx, dateSetListener, mYear,mMonth, mDay);
我添加了事件以捕获取消:
dateDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
if (which == DialogInterface.BUTTON_NEGATIVE) {
datePickerPlugin.success(new PluginResult(PluginResult.Status.NO_RESULT, ""), callBackId);}}});
按下取消按钮时,将日期设置为“”。 在javascript代码中,我设法将焦点事件更改为点击事件,如下所示(我在移动设备上使用具有TAP事件的插件:
$('.nativedatepicker').bind('tap',function(event) {
var currentField = $(this);
console.log(currentField.val());
var myNewDate = Date.parse(currentField.val()) || new Date();
if(typeof myNewDate === "number"){ myNewDate = new Date (myNewDate); }
//myNewDate = currentField.val();
console.log("inside native date picker " + event);
// Same handling for iPhone and Android
window.plugins.datePicker.show({
date : myNewDate,
mode : 'date', // date or time or blank for both
allowOldDates : true
}, function(returnDate) {
console.log("ret date" + returnDate);
if (returnDate)
{
var newDate = new Date(returnDate);
currentField.val(returnDate);
// This fixes the problem you mention at the bottom of this script with it not working a second/third time around, because it is in focus.
currentField.blur();
}
});
});
我希望可以提供帮助。