1

我有一个简单的表单,上面有一个 DatePicker 组件。用户可以输入他们的出生日期,然后提交表格。一旦提交,他们就会看到他们在表格中输入的内容的审查。除了 DatePicker 之外,表单上的所有其他组件都在工作。我成功地将 DatePicker 中的一个值传递到我的 Intent 中,但由于某种原因,我得到了一个非常奇怪、不受欢迎的日期......

有谁知道我如何检索用户输入的实际值?下面是我在模拟器中得到的屏幕。

模拟器截图

这是我的 onCreate 方法中代码的一部分,我将日期信息放入意图中

Date myDate = new Date(date.getDayOfMonth(), date.getMonth(), date.getYear());
            i.putExtra("dob", myDate.toString());

然后在显示结果的活动中,这是我显示从意图中提取的信息的代码。

dob.setText("Their date of birth is: " + extras.get("dob"));

如您所见,我确实成功获得了输出,但这不是我在 DatePicker 本身上选择的日期。我根本没有运行时错误。我认为这是一个格式化的事情。不确定,所以任何反馈表示赞赏!

4

1 回答 1

0

我纠正了这个问题。我决定从 DatePicker 中检索值并将它们存储在整数变量中,而不是创建一个 Date 对象并将其传递给我的意图。

            int day = date.getDayOfMonth();
            int month = date.getMonth();
            int year = date.getYear();

            i.putExtra("day", day);
            i.putExtra("month", month);
            i.putExtra("year", year);

在此之后,我从新 Activity 中的 Intent 中检索值,对其进行格式化并将它们显示在 TextView 中。

    int day = extras.getInt("day");
    int month =extras.getInt("month");
    int year = extras.getInt("year");
    dob.setText("Their date of birth is: " + String.valueOf(day) + "/" + String.valueOf(month + 1) + "/" + String.valueOf(year));

由于某种原因,我不得不在月份中添加 1 如果我选择一月份,它将输出 0。

于 2012-10-31T00:43:52.197 回答