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.
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.
(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);
Cela a fonctionné pour moi sur Android 4.4.2
Android:inputType="textEmailAddress|textMultiLine"
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