EditText,用于阻止相邻空格

时间:2014-09-02 16:22:50

标签: android android-edittext input-filtering android-input-filter

我要求约束EditText永远不要有相邻的空格字符。编写InputFilter以防止输入与另一个空格字符相邻的空格字符变得非常容易,但是我试图找出一种处理删除/替换的简洁方法。有关InputFilter失败的示例,请考虑序列(我使用•作为空间的直观表示):

  

坐•一个•位

如果用户删除单词" a",结果将是:

  

坐••位

违反了约束条件。我在InputFilter中无能为力,因为它只允许修改替换字符串,并且在删除的情况下,替换字符串的长度为零。 (在这种情况下,当用户删除" a"时,我想自动删除其中一个空格。)

我唯一能想到的就是添加TextWatcher并进一步修改EditTextafterTextChanged()的内容。但是,无论我是使用InputFilter代替还是使用EditText,这都会让我觉得这是一种解决这个问题的错综复杂的方法。

有没有更好的方法来解决这个问题?

注意(回复一些评论和发布的答案)我只想明确表示我需要有关如何更换的建议两个空格字符与一个;这很简单。问题涉及从TextWatcher#afterTextChanged()内更改afterTextChanged()内容的低效性。至少,进行这样的更改总会触发对InputFilter的递归调用,我必须进行额外的处理以确保递归不会重复。

我感到沮丧的是,我可以通过TextWatcher非常有效地获得我所需要的大部分内容但是为了完成这项工作,我需要基本上抛弃这种方法然后去(显然) )低效{{1}}。

0 个答案:

没有答案