Android上的Phonegap Datepicker插件

时间:2012-09-13 20:54:26

标签: android cordova datepicker

我正在使用适用于Android的Phonegap Datepicker插件。

打开屏幕时,我无法看到日期选择器。我收到了这个错误。

09-13 22:37:55.894:E / Web Console(13123):未捕获TypeError:无法在file:///android_asset/www/index.html:689

调用undefined方法'show'

我的代码如下:

<div data-role="controlgroup">
    <p>
        <label for="airportName">Airport</label> <input type="text" name="airportName" id="airportName" class="custom" />
        <label for="selectDate">Date</label> <input type="text" name="selectDate" id="selectDate" class="nativedatepicker" />            
    </p>

我使用了像

这样的事件处理程序
$('.nativedatepicker').click(function(event) {
    var currentField = $(this);
    var myNewDate = Date.parse(currentField.val()) || new Date();

    // 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) {
            var newDate = new Date(returnDate);
            currentField.val(newDate.toString("yyyy-MM-dd"));

            // 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();
    });
});

是否有任何链接我可以看到这个插件如何使用除了文档中显示的常用示例之外?

1 个答案:

答案 0 :(得分:5)

您必须做的事情是更改DatePickerPlugin.java,因为如果不是新的Cordova 2.0工作则不会。 更改此文件中的两行后,来自Javascript的来电再次给您带来麻烦。 变化:

  final DroidGap currentCtx = (DroidGap) ctx.getContext();

为此:

  final Context currentCtx = cordova.getActivity();

找到这个:

  ctx.runOnUiThread(runnable);

并替换为:

  cordova.getActivity().runOnUiThread(runnable);

阅读此主题以获取更多信息: datePicker plugin not working in Phonegap 2.0