Programmatically hide/disable emoticons on Android soft keyboard

ぐ巨炮叔叔 提交于 2019-11-27 13:07:09
Scorpio

I don't really understand why the question is downvoted. It is a valid question.

I have found something here.

You need to remove the textLongMessage option from the inputType.

You will still have the ":-)" button on most keyboards, but not the emoji .

(For completeness sake)

This solution is for people who need to have textview without the smiley on their soft keyboard. @Adrian's solution, to use email address type, works but it will show unnecessary '@' and '.com' buttons on your keyboard. I tried several combinations of InputType and the best solution IMHO is this:

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

Original Keyboard:

Resulting keyboard:

This worked for me on Android 4.4.2

android:inputType="textEmailAddress|textMultiLine"
karenms

From Petr Daña in a similar question... This enables autocomplete and disables all the smileys.

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});

Refer to the complete answer post

I tried @Adrian's solution, but it has "@" and ".com" keys. I just need a field that can take user's name. I got my solution by combining textVisiblePassword and textNoSuggestions. android:inputType="textVisiblePassword|textNoSuggestions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!