私のXMlレイアウトは次のようになります。
<RelativeLayout android:id="@+id/dateSelectionLayout" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:visibility="visible">
<EditText android:layout_height="wrap_content" android:layout_width="fill_parent"
android:singleLine="true" android:id="@+id/dateSelectionEditText" android:gravity="center"
android:textColor="#000000" android:textSize="14sp" android:cursorVisible="false"
android:focusable="false"
android:hint="tax code" android:layout_weight="1"/>
<DatePicker android:id="@+id/datePicker"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_below="@+id/dateSelectionEditText"/>
</RelativeLayout>
ここで、datePickerの日付に基づくeditTextの値を変更したいと思います。ユーザーが日付を変更した場合、その時点でeditTextに反映される必要があります。どのようにそれは可能ですか?
編集:私は次のように行いました:resourcecを次のように設定しました:
datePicker = (DatePicker) findViewById(R.id.datePicker);
dateSelectionEditText = (EditText)findViewById(R.id.dateSelectionEditText);
そして、次のようにオーバーライドメソッドを設定しました。
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
dateSelectionEditText.setText(dayOfMonth+"/"+monthOfYear+"/"+year);
}
しかし、日付ピッカーの値の変更については、まだ値を取得していません。
編集:
Kasper Moerchの答えの後、私は解決策を得ました。しかし、ほとんど問題はありません。私はこのコードを使用して日付ピッカーを初期化します。
final Calendar c = Calendar.getInstance();
//dateSelectionEditText.setText( "" + dayOfMonth + "-" + monthOfYear + "-" + year );
datePicker.init(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), new MyOnDateChangedListener());
Toast.makeText(getApplicationContext(), ""+position+"", Toast.LENGTH_SHORT).show();
これで、datePickerから変更された値を確認できます。ただし、最初の月(1月から)は「1」ではなく0になります。では、なぜそれがこのように起こるのでしょうか?
ありがとう。