我看不到我的日期选择器Android,phonegap

时间:2013-04-04 15:02:15

标签: android jquery cordova

我有一个应用程序,它在phonegap上取消了。

我使用了一个慢速日期选择器插件,所以我想改变它。

我搜索并找到一个可用的;

https://github.com/phonegap/phonegap-plugins/tree/master/Android/DatePicker

我按照步骤。

但是我没有看到我的日期选择器,只看到一个空的输入元素。

我创建了一个包“com.phonegap.plugin”并将我的“DatePickerPlugin.java”放入此包中。

我创建了“datePickerPlugin.js”并将其放在assets / www文件下。

我将它包含在index.html

<script type="text/javascript" charset="utf-8" src="datePickerPlugin.js"></script>

<script type="text/javascript" src="datePickerPlugin.js"></script>

我在我的元素

中添加了一个class =“nativedatepicker”
<input type="text" class="nativedatepicker" id="get_date" name="get_date" />

我把代码放在我的index.html的脚本部分

$('.nativedatepicker').focus(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("dd/MMM/yyyy"));

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

$('.nativetimepicker').focus(function(event) {
    var currentField = $(this);
    var time = currentField.val();
    var myNewTime = new Date();

    myNewTime.setHours(time.substr(0, 2));
    myNewTime.setMinutes(time.substr(3, 2));

    // Same handling for iPhone and Android
    plugins.datePicker.show({
        date : myNewTime,
        mode : 'time', // date or time or blank for both
        allowOldDates : true
    }, function(returnDate) {
      // returnDate is generated by .toLocaleString() in Java so it will be relative to the current time zone
        var newDate = new Date(returnDate);
        currentField.val(newDate.toString("HH:mm"));

        currentField.blur();
    });
});

最后,我把插件放到我的plugins.xml

<plugin name="DatePickerPlugin" value="com.phonegap.plugin.DatePickerPlugin"/>

我的错误在哪里?

我使用cordova-1.9.0和Android 2.2。我还包括了我的Cordova库文件。

我几乎在stackoverflow中查看了有关此错误的所有问题,我没有找到任何有效的解决方案。

1 个答案:

答案 0 :(得分:0)

你可以试试这个来获得日期。

function  ShowDatePicker(){

                        var currentField = $('#nativedate');
                        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);

                            var curr_date = newDate.getDate();
                            var curr_month = newDate.getMonth() + 1; //Months are zero based
                            var curr_year = newDate.getFullYear();
                            if(curr_month < '10' || curr_month < 10 )
                                {
                                curr_month ='0'+curr_month.toString(); 
                                }

                            currentField.val(curr_date + "-" + curr_month + "-" + curr_year);

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

更改

<input type="text" class="nativedatepicker" id="get_date" name="get_date" />

<input type="text"  id="nativedate" onclick="ShowDatePicker();" name="get_date" />