web-dev-qa-db-fra.com

Masquer/désactiver par programme les émoticônes sur le clavier virtuel Android

Est-il possible de cacher un bouton spécifique du clavier? J'ai un EditText et sur certains appareils, son clavier a des sourires, alors qu'il est absent sur d'autres. Je veux le cacher sur tous les appareils.

Ci-dessous, le XML pour ma EditText:

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"

Je dois dire que je suis nouveau sur Android et si ce n'est pas possible, j'aimerais savoir pourquoi.

Merci de votre aide.

26
ellen6a

Je ne comprends pas vraiment pourquoi la question est votée. C'est une question valide.

J'ai trouvé quelque chose ici .

Vous devez supprimer l'option textLongMessage de la inputType.

Vous aurez toujours le bouton ":-)" sur la plupart des claviers, mais pas les emoji.

13
Scorpio

(Par souci d'exhaustivité)

Cette solution est destinée aux personnes ayant besoin de textview sans le smiley sur leur clavier logiciel. La solution de @ Adrian, d'utiliser le type d'adresse électronique, fonctionne mais elle affichera des boutons "@" et ".com" inutiles sur votre clavier. J'ai essayé plusieurs combinaisons de InputType et la meilleure solution à mon humble avis est la suivante:

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

Clavier d'origine:  enter image description here

Clavier résultant:  enter image description here

6
user1506104

Cela a fonctionné pour moi sur Android 4.4.2

Android:inputType="textEmailAddress|textMultiLine"
0
Adrian

De Petr Daña dans une question similaire ... Cela permet la saisie semi-automatique et désactive tous les 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});

Reportez-vous à la réponse complète post

0
karenms