我的 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 上。怎么可能?
编辑:我已经这样做了:将资源设置为:
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 的变化值。但它需要 0 作为第一个月(从一月开始)而不是“1”。那么为什么会这样呢?
谢谢。