Мой макет 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>
Теперь я хочу изменить значение editText, основанное на дате datePicker. Если пользователь изменяет дату, то это должно быть отражено в тексте редактирования в это время. Как это возможно?
Отредактировано:
Я сделал так:
Установите ресурс как:
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);
}
Но все равно не получает никакого значения при изменении значения средства выбора даты.
Отредактировано:
После ответа Каспера Мёрча я получил решение. Но есть небольшая проблема.
Я использую этот код для инициации выбора даты.
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. Но в качестве первого месяца (с января) он принимает значение 0, а не «1». Так почему же так происходит?
Спасибо.