自定义EditText,可防止n个字符后的用户输入

时间:2012-03-29 15:34:40

标签: android android-layout

我正在努力让编辑文本以这种方式运行:

用户最多可以输入10个字符,当从编辑文本中丢失焦点时,当前文本的格式为:0123456789 - > 0 1 2 3 4 5 6 7 8 9。

因此编辑文本本身最多可包含19个字符。再次获得焦点后,用户无法在删除字符之前输入。

目前我一直在使用TextWatcher破解文本,解决方案看起来并不漂亮(需要标记,处理程序和runnable)。所以任何想法,如果有一些很好的方法来做到这一点,可能会覆盖一些超类方法或类似的东西?

BR, 尼科

2 个答案:

答案 0 :(得分:0)

我认为你仍然可以实现TextWatcher让用户只输入10个字符。每当用户输入10个字符时,请将EditText设置为不可编辑。并将OnFocusChangeListener设置为它。因此,每当它失去焦点时,改变它的文本并在每个字符之后添加空格,除了最后一个字符。

答案 1 :(得分:0)

尝试创建自己的类,扩展EditText并覆盖onTextChanged方法。在这里输入x个字符数量后,将其设置为只读/未聚焦/无处理,并自行格式化。或者也许是onKeyDown?