【问题标题】:How to avoid showing characters like Ä in android keyboard如何避免在 android 键盘中显示 Ä 等字符
【发布时间】:2017-04-03 04:35:23
【问题描述】:
我遇到了一个问题,我的一个用户在编辑文本中输入了 Ä 之类的字符,我正在从该数据准备一个 XML。由于编码问题,我无法从这些字符中准备有效的 XML。无论如何我可以阻止用户输入这种字符,或者我可以从android默认键盘本身隐藏这些字符吗?
问候
【问题讨论】:
标签:
android
android-edittext
android-keypad
【解决方案1】:
您可以限制用户在编辑文本中仅输入特定字符,如下所示,
<EditText
android:id="@+id/YourEdittextId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:privateImeOptions="nm"
android:digits="0123456789 abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ" />
以上代码限制用户只能输入英文数字、字母和空格
【解决方案2】:
在您的编辑文本中隐藏建议字符串。
android:inputType="textFilter"
【解决方案3】:
在我遇到同样问题的前几天,我通过创建以下方法解决了这个问题。
public static String stripSpecialUTFChars(String string) {
return string.replaceAll("\u0080", "");
}
请将您的字符串传递给上述方法,并像下面这样使用
textView.setText(Html.fromHtml(stripSpecialUTFChars(yourString)));
实际上这个问题是由于 UTF 字符造成的。