gpt4 book ai didi

android - Asus Zenfone (Android) TextView\TextWatcher 键盘输入错误

转载 作者:搜寻专家 更新时间:2023-11-01 08:42:02 24 4
gpt4 key购买 nike

更新:实际上,这不是华硕手机的问题,而是华硕ZenUI键盘的问题。您可以安装一个您喜欢的键盘来解决这个问题。我已经在安装了 Google 键盘的情况下测试了 Zenfone 2。我的 TextWatcher 中的所有内容都运行良好。但这不是错误修复或问题解决方案。

我有两个 InputFilter 和一个 TextWatcher 附加到我的 EditText

InputFilters:标准 InputFilter.AllCaps() 过滤器和自定义“仅限字母字符”。它们就像魔法一样起作用。

TextWatcher 进行一些文本转换(将符号从俄语音译成英语)。 TextWatcher 也可以正常工作,但不能用于华硕手机(在 Zenfone 4 和 5 上测试)。 Nexus 5、Genymotion 模拟器和三星设备都可以。

问题是华硕手机不允许输入多个符号。可能是 TextWatchersetSelection() 有问题(禁用 TextWatcher 时华硕一切正常)。

TextView 列表:

etCardholder.setFilters(new InputFilter[]{new InputFilter.AllCaps(), new NameInputeFilter(false)});

twTransliterator = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
etCardholder.removeTextChangedListener(twTransliterator);
etCardholder.setText(StringTools.transliterateCharacterRuToEn(s.toString()));
etCardholder.addTextChangedListener(twTransliterator);
}

@Override
public void afterTextChanged(Editable s) {
etCardholder.setSelection(etCardholder.getText().length());
validateCardData();
}
};

etCardholder.addTextChangedListener(twTransliterator);

我尝试不使用 setSelection() 设置光标的位置,而是使用 append()。这里的结果相同。

你知道它可能是什么吗?以及如何绕过它?

最佳答案

我找到了这个问题的解决方案,在我的例子中,EditText 上的 inputType 属性带有参数:textCapCharacters,我使用 textNoSuggestions 解决了这个问题。您也可以将两者与管道运算符“|”一起使用。

 android:inputType="textCapCharacters|textNoSuggestions"

关于android - Asus Zenfone (Android) TextView\TextWatcher 键盘输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com