【问题标题】:Android DatePicker updateDate from DateAndroid DatePicker updateDate from Date
【发布时间】:2023-03-26 17:02:02
【问题描述】:

全部。 我在从我的变量中更新 DatePicker 的值时遇到了一些问题。

所以,首先我做了什么 - 创建 DatePicker 并从中获取 Date

    final DatePicker newDatePicker = (DatePicker)view.findViewById(R.id.dpResult);
    final Calendar c = Calendar.getInstance();
    final int year = c.get(Calendar.YEAR);
    final int month = c.get(Calendar.MONTH);
    final int day = c.get(Calendar.DAY_OF_MONTH);

    newDatePicker.init(year, month, day, null);
    newDatePicker.setMinDate(System.currentTimeMillis() - 1000);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            @SuppressWarnings("deprecation")
            Date date = new Date(newDatePicker.getYear()-1900, 
                                  newDatePicker.getMonth(), 
                                  newDatePicker.getDayOfMonth());
            //hear is some list where I add the date field
            dealList.add(new ItemDeal(newDescription.getText().toString(), date,
                        false));
            ((BaseAdapter)listView.getAdapter()).notifyDataSetChanged();
        }

然后,当我想编辑一些信息时,我希望 DatePicker 显示该字段中的日期。所以我尝试使用 DatePicker.updateDate():

    final DatePicker newDatePicker = (DatePicker)view.findViewById(R.id.dpResult);

    Date itemDate = (Date)c.dealList.get(numberOfItem).getDealTime();

    //newDatePicker.init(itemDate.getYear(), itemDate.getMonth(), itemDate.getMonth(), null);
    newDatePicker.updateDate(itemDate.getYear(), itemDate.getMonth(), itemDate.getMonth());

当我这样做时,DatePicker 显示 1900 年 1 月 1 日。通过调试器,我看到了 itemDate - 它有日期。 请帮忙。我做错了什么?

【问题讨论】:

    标签: android datepicker


    【解决方案1】:

    你为什么要做这个 newDatePicker.getYear()-1900 和这个 newDatePicker.setMinDate(System.currentTimeMillis() - 1000);?我认为你不需要这些。

    编辑:尝试写出您形成的 System.err 日期,我认为这是不正确的,并观察 log cat 输出。在此处发布输出。

    【讨论】:

    • newDatePicker.setMinDate(System.currentTimeMillis() - 1000) - 没有这个程序不起作用。因为您只能设置前一个日期的日历(例如 - 前一秒)。我读了一些关于stackoverflow的文章。但是对于1900,您是对的。 DatePicker 有点奇怪。当我从中获取日期然后附加到 textView 时,它会给出 currentYear+1900 的值。所以这是我的错误,当我更新 DatePicker 时 - 年份太小了。现在一切正常!
    • Log cat 是快速调试东西的好方法,我一直在使用它。好想我帮了忙:D
    • @DjDexter5GHz 感谢您的解决方案。 datePicker.setMinDate(System.currentTimeMillis() - 1000); 为我成功了。
    猜你喜欢
    • 2018-04-29
    • 2021-09-07
    • 1970-01-01
    • 2013-07-23
    • 2012-01-17
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多