我有一个带有DatePicker组件的简单表单。用户可以输入他们的出生日期,然后提交表格。提交后,他们会看到他们在表格中输入的内容。我将表单上的所有其他组件与DatePicker分开工作。我成功地将DatePicker中的值传递给了我的Intent但由于某种原因我得到了一个非常奇怪的,不受欢迎的日期...
有谁知道如何检索用户输入的实际值?下面是我在模拟器中获得的内容的屏幕。
这是我在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本身上选择的日期。我根本没有运行时错误。我认为这是一种格式化的东西。不确定,所以任何反馈都表示赞赏!
答案 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.