如何避免在 android 键盘中显示像 Ä 这样的字符

How to avoid showing characters like Ä in android keyboard

我遇到了一个问题,我的一位用户在编辑文本中输入了像 Ä 这样的字符,而我正在根据该数据准备一个 XML。由于编码问题,我无法从这些字符中准备有效的 XML。无论如何我可以阻止用户输入此类字符,或者我可以从 android 默认键盘本身隐藏这些字符吗?

此致

在您的编辑文本中隐藏建议字符串。

android:inputType="textFilter" 

您可以限制用户只能在编辑文本中输入特定字符,如下所示,

<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" />

以上代码限制用户只能输入英文数字、字母和space

在我遇到同样问题的前几天,我通过创建以下方法解决了这个问题。

public static String stripSpecialUTFChars(String string) {
    return string.replaceAll("\u0080", "");
  }

请将您的字符串传递给上述方法并像下面这样使用它

textView.setText(Html.fromHtml(stripSpecialUTFChars(yourString)));

实际上这个问题是由于 UTF 字符引起的。