繁体   English   中英

如何以编程方式隐藏/禁用 Android 软键盘上的表情符号

[英]How to programmatically hide/disable emoticons on Android soft keyboard

是否可以隐藏特定的键盘按钮? 我有一个EditText ,在某些设备上,它的键盘有笑脸,而在其他设备上却没有。 我想在所有设备上隐藏它。

以下是我的EditText的 XML:

android:id="@+id/text_editor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/send_side"
android:hint="Enter your text"
android:imeOptions="actionSend|flagNoEnterAction"
android:inputType="textLongMessage|textAutoCorrect|textCapSentences|textMultiLine"
android:maxLength="1000"
android:maxLines="3"
android:nextFocusRight="@+id/send_button"
android:padding="12dp"
android:textSize="13sp"

这可能吗?

我在“ 使用 ICS 中的股票消息应用程序禁用键盘上的笑脸键”中找到了一些东西。

您需要从inputType删除textLongMessage选项。

大多数键盘上仍然会有“:-)”按钮,但不会有表情符号。

(为了完整起见)

此解决方案适用于需要在软键盘上没有笑脸的文本视图的人。 @Adrian 的解决方案使用电子邮件地址类型,但它会在您的键盘上显示不必要的“@”和“.com”按钮。 我尝试了几种 InputType 组合,恕我直言,最好的解决方案是:

mTextView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

原装键盘:

结果键盘:

这在 Android 4.4.2 上对我有用

android:inputType="textEmailAddress|textMultiLine"

来自 Petr Daña 在一个类似的问题中......这将启用自动完成并禁用所有笑脸。

InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
    for (int i = start; i < end; i++) {
        int type = Character.getType(source.charAt(i));
        //System.out.println("Type : " + type);
        if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {
            return "";
        }
    }
    return null;
    }
};

mMessageEditText.setFilters(new InputFilter[]{filter});

参考“ 如何在android中的EditText中检测表情符号”。

我尝试了@Adrian 的解决方案,但它有“@”和“.com”键。 我只需要一个可以取用户名的字段。 我通过结合textVisiblePasswordtextNoSuggestions得到了我的解决方案:

android:inputType="textVisiblePassword|textNoSuggestions

mEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD| TEXT_MULTILINE); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM