我正在我的应用程序中实现一个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小部件组成。这些NumberPickerImageViewsEditText组成。单击EditText显示输入数据/文本的键盘不会删除旧数据,因此行为正常。
您将很难覆盖此行为,特别是如果您计划覆盖较旧的android版本,因为您将无法访问输入EditTexts。例如,您无法在较旧的Android版本上访问对话框的DatePicker小部件,访问该小部件的方法最近才添加到DatePickerDialog(在Honeycomb,API版本11中)。
当然,您可以选择重新创建DatePickerDialog来实现行为,但我认为这不值得这么做。

关于android - DatePickerDialog软键盘类型无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10564142/

10-09 06:57