gpt4 book ai didi

android - 如何将datePicker的值设置到EditText中?

转载 作者:太空狗 更新时间:2023-10-29 16:23:28 29 4
gpt4 key购买 nike

我的 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”。那么为什么会这样呢?

谢谢。

最佳答案

您需要做的是获取对 EditTextDatePicker 的引用:

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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com