Android,有啥方法可以禁用使用键盘在日期选择器内写入?
Posted
技术标签:
【中文标题】Android,有啥方法可以禁用使用键盘在日期选择器内写入?【英文标题】:Android, is there any way to disable writing inside a date picker using keyboard?Android,有什么方法可以禁用使用键盘在日期选择器内写入? 【发布时间】:2012-11-08 10:20:17 【问题描述】:有什么方法可以禁止使用键盘在日期选择器中写入?因为我只想使用加号和减号来设置日期。 提前致谢。
【问题讨论】:
你为什么打算打破默认的用户交互?预期的行为不再起作用,它会混淆和/或惹恼您的用户...... 因为我对用户的输入日期有限制 所以在用户选择新日期后检查输入日期是否符合您的限制,并在不符合时通知用户... 【参考方案1】:myDatePicker.setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);
【讨论】:
如果 API 级别低于 11,您知道如何为 DatePickerDialog 执行此操作吗? 不确定让我今天晚些时候有机会尝试一下 @Antigona 试试这个:myDatePickerDialog.getDatePicker().setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);【参考方案2】:dp.setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);
是最好的方法。
你也可以检查一下
Focusable EditText inside ListView
【讨论】:
【参考方案3】:Calendar start = Calendar.getInstance();
int Year = DatePicker.getYear();
int Month = DatePicker.getMonth();
int Day = DatePicker.getDayOfMonth();
start.set(Year, Month, Day);
// DayDatePicker.setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);
Date periodDate = start.getTime();
int daysToAdd = 280;
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH,daysToAdd );
System.err.println("-----" +cal.getTime());
int AfterCalc = cal.getTime().getYear()+1900;
System.err.println("-----" + AfterCalc);
int AfterCalc2 = cal.getTime().getMonth();
System.err.println("----" + AfterCalc2);
【讨论】:
【参考方案4】:在 DatePickerDialog 项中停止手动编辑的最佳选项是使用设置 descendantFocusability 。您可以在代码或对话框样式文件中添加它。
Here is the implementation using style
【讨论】:
以上是关于Android,有啥方法可以禁用使用键盘在日期选择器内写入?的主要内容,如果未能解决你的问题,请参考以下文章