日付 Android DatePickerは入力時に年が変更されたときを認識しません




ondateset (2)

+/-ボタンを使用する代わりに、ユーザがフィールドに入力するときを除いて、期待どおりに機能するDatePickerがあります。 その時点で、値が入力されていることを示しているにもかかわらず、ゲッターはユーザーが入力する前にそこにあった日付の情報を返しています。 ユーザーが+または - を押すとすぐに更新されます。

値をとる更新メソッドがありますが、これは私が望むものではありません。 ユーザーが「続行」ボタン(DatePickerに関連していないボタン)をクリックしたときにその値を再調査するために、それを呼び起こしたいと思います。 フォーカスの喪失にリスナーを付けることはできますが、内容を再検討するために何ができるかはわかりません。

すべてのアイデアが歓迎

EDIT DatePickerは、オブジェクト全体から、または3つのフィールド間でもフォーカスを移動すると、その値を確実に更新します。 問題になるのは、フォーカスを得ることができる画面上に他のものがないとき、フォーカスをそれから遠ざける方法です。 私は進行ボタンをフォーカスしようとしていますが、何らかの理由でフォーカスを取ることを拒否します。 もし誰かが知っていれば、それについてもっと知りたいです。


DatePickerにフォーカスを合わせるだけです。 隠されたフィールドの必要はありません。

final DatePicker dp = (DatePicker)v.findViewById(R.id.dpDate);

dlg.setPositiveButton("Done", new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog, int id) {
      dp.clearFocus();
      String val = "";
      int m = dp.getMonth() + 1;
      val = m + "/" + dp.getDayOfMonth() + "/" + dp.getYear();
      mA.setmDOB(val);
      etAge.setText(AppHelper.calcAge(val, "y", false) + "  (" + val + ")");
 }
 });

進むボタンのonPressメソッドで再度DatePickerにフォーカスを合わせてください( requestFocus() )。





datepicker