使用Android:Digits属性限制字符会导致下一步按钮无法操作

13

我在一个安卓应用上有多个EditText框,使用android:digits防止无效字符输入。

例如: android:digits="@string/validchars" (其中“validchars”是所有有效字符的字符串资源,如A-Z、0-9和一些标点符号)

问题是,如果用户在软键盘上按下ENTER键,它会跳转到下一个字段,但自从我添加了android:digits后,这种功能就停止了。我尝试在validchars中添加\n,但这只允许单行文本框中的回车换行符,因此没有帮助。我尝试调整imeOptions(添加actionNext等),但这似乎也不能解决问题。 我了解了TextWatchers和InputFilters,但两者似乎对于我想要做的事情过于复杂,并且android:digits可以很好地防止无效字符。

有人有什么想法吗?

我使用的Android SDK版本为8,针对2.2和2.3.5设备。

2个回答

25

在研究EditText可用的属性时,我发现当我添加了android:singleLine="true"后,即使有android:digits限制输入字符,按下回车键也会将焦点移动到下一个字段。问题解决了!(对我来说至少是这样)


或者,如果用户想要一个“完成”选项而不是“下一个”,请参考这个相关的问题https://dev59.com/K3I-5IYBdhLWcg3wTWj4。 - CrimsonX
android:singleLine已被弃用 =( 还有其他的替代方法吗? - Rahim Rahimov
我认为你现在应该使用maxLines="1"。 - Buzby
4
但是 android:maxLines=1 和 android:digits 一起使用效果不佳。 - Sumit Kumar Saha

0
只需在digits属性中添加"\n",以允许回车键和textMultiLine作为输入类型。

android:inputType="textMultiLine"      android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 \n"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接