作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 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 的值。如果用户更改日期,那么它应该反射(reflect)在当时的 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”。那么为什么会这样呢?
谢谢。
最佳答案
您需要做的是获取对 EditText
和 DatePicker
的引用:
EditText editText = (EditText) findViewById( R.id.dateSelectionEditText );
DatePicker datePicker = (DatePicker) findViewById( R.id.datePicker );
然后你需要创建一个OnDateChangedListener
:
private class MyOnDateChangedListener implements OnDateChangedListener {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
editText.setText( "" + dayOfMonth + "-" + (monthOfYear + 1) + "-" + year );
}
};
剩下要做的就是初始化 DatePicker:
datePicker.init( year, monthOfYear, dayOfMonth, new MyOnDateChangedListener() ).
关于android - 如何将datePicker的值设置到EditText中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8519800/
我是一名优秀的程序员,十分优秀!