我正在我的应用程序中实现一个DatePickerDialog,我的问题是当我试图更改“Day”时,软键盘会弹出并显示数字,而插入符号在数字之前。当我点击数字时,它不会替换已经在“日”框中的内容。只有当我在“日期”框中找到数字的末尾并删除它(软键盘中的退格键)然后键入数字时,它才起作用。
为什么会这样?为什么它不覆盖已经存在的东西?
此代码显示对话框:
protected Dialog onCreateDialog(int id)
{
Dialog ReturnDialog = null;
switch (id)
{
case DATE_DIALOG_ID:
ReturnDialog = new DatePickerDialog(this, mDateSetListener, Year, Month - 1, Day );
break;
}
return ReturnDialog;
}
然后我从onclicklistener()调用它
showDialog( DATE_DIALOG_ID );
我做错什么了?
最佳答案
你看到的是(我认为)正常的行为。aDatePickerDialog
由一个DatePicker
小部件组成,每个日期部分(天、月、年)由三个NumberPicker
小部件组成。这些NumberPicker
由ImageViews
和EditText
组成。单击EditText
显示输入数据/文本的键盘不会删除旧数据,因此行为正常。
您将很难覆盖此行为,特别是如果您计划覆盖较旧的android版本,因为您将无法访问输入EditTexts
。例如,您无法在较旧的Android版本上访问对话框的DatePicker
小部件,访问该小部件的方法最近才添加到DatePickerDialog
(在Honeycomb
,API版本11中)。
当然,您可以选择重新创建DatePickerDialog
来实现行为,但我认为这不值得这么做。
关于android - DatePickerDialog软键盘类型无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10564142/