Android 插入新行字符时InputFilter行为不一致
给出此方法的签名来自: 在Android 插入新行字符时InputFilter行为不一致,android,android-edittext,android-input-filter,Android,Android Edittext,Android Input Filter,给出此方法的签名来自: 在EditText上设置这些属性: android:inputType="textMultiLine|textNoSuggestions" android:textIsSelectable="true" 假设我们在EditText中有一个文本FooBar(使用上述属性设置)。将光标放在这两个单词(Foo | Bar)之间并按Enter)时,我们得到: source = "\n", start = 0, end = 0 dstart = 3, dend = 3, des
EditText
上设置这些属性:
android:inputType="textMultiLine|textNoSuggestions"
android:textIsSelectable="true"
假设我们在EditText
中有一个文本FooBar
(使用上述属性设置)。将光标放在这两个单词(Foo | Bar
)之间并按Enter
)时,我们得到:
source = "\n",
start = 0,
end = 0
dstart = 3,
dend = 3,
dest = "FooBar"
如您所见,在光标位置插入了新行字符“\n”
。这在某种程度上是意料之中的,这是好事。我只需要检测此插入,但通过返回“
而不是”\n“
来忽略它
让我们重新开始。假设我们的EditText
中有一个文本FooBar
。让我们将光标放在这两个单词(Foo | Bar
)之间,然后键入123。现在,您应该有Foo123 | Bar
。然后按Enter
这就是我所期望的:
source = "\n",
start = 0,
end = 0
dstart = 6,
dend = 6,
dest = "Foo123Bar"
与前面一样,我将返回”
,而不是“\n”
。但是停下来。这就是我实际得到的:
source = "",
start = 0,
end = 0
dstart = 6,
dend = 9,
dest = "Foo123Bar"
为什么InputFilter
行为不同?我可能误解了什么,但这似乎是一种不一致的行为。知道怎么修吗?或者可能有一个解释
在InputFilter
中,我需要一种方法来检测新的行字符插入命令,然后用空字符串替换该字符
任何帮助都将不胜感激
source = "",
start = 0,
end = 0
dstart = 6,
dend = 9,
dest = "Foo123Bar"