1

DatePickerコンポーネントを含む単純なフォームがあります。ユーザーは生年月日を入力してからフォームを送信できます。送信されると、フォームに入力した内容のレビューが表示されます。DatePickerとは別に、フォーム上の他のすべてのコンポーネントが機能しています。DatePickerからインテントに値を渡すことに成功しましたが、何らかの理由で、非常に奇妙で望ましくない日付を取得しています...

ユーザーが入力した実際の値を取得する方法を知っている人はいますか?以下は、エミュレーターで取得しているものの画面です。

エミュレータのスクリーンショット

これは、日付情報をインテントに入れる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

問題を修正しました。次に、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);

これに続いて、新しいアクティビティのインテントから値を取得し、フォーマットして、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が出力されます。

于 2012-10-31T00:43:52.197 に答える