将DatePicker值传递给Intent

时间:2012-10-31 00:23:09

标签: android android-intent datepicker

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

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

Screenshot of Emulator

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

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本身上选择的日期。我根本没有运行时错误。我认为这是一种格式化的东西。不确定,所以任何反馈都表示赞赏!

1 个答案:

答案 0 :(得分:0)

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

            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,如果我选择1月,它将输出0.

相关问题