Voici une réponse plus correcte qui n'affiche pas la touche Entrée sur le clavier IME :
// IMPORTANT, do this before any of the code following it
myEditText.setSingleLine(true);
// IMPORTANT, to allow wrapping
myEditText.setHorizontallyScrolling(false);
// IMPORTANT, or else your edit text would wrap but not expand to multiple lines
myEditText.setMaxLines(6);
Vous pouvez également remplacer setSingleLine(true)
avec soit, un android:inputType
sur le fichier de mise en page XML, ou setInputType(InputType.*)
sur le code - dans lequel, le type d'entrée utilisé, est tout ce que vous savez restreindre l'entrée à une seule ligne (c'est-à-dire, tout ce qui appelle setSingleLine(true)
implicitement déjà).
Explication :
Quoi setSingleLine(true)
fait est d'appeler setHorizontallyScrolling(true)
y setLines(1)
implicitement, ainsi que la modification de certains paramètres du clavier IME pour désactiver la touche entrée.
À son tour, l'appel à setLines(1)
c'est comme appeler setMinLines(1)
y setMaxLines(1)
en un seul appel.
Certains types d'entrée (c'est-à-dire les constantes de InputType.TYPE_*
) appelle setSingleLine(true)
implicitement, ou du moins obtient le même effet.
Conclusion :
Donc, pour réaliser ce que le PO veut, nous controns simplement ces paramètres implicites en annulant ces appels implicites.
11 votes
Ajoutez simplement Android:inputType="textPersonName" à l'EditText pour l'empêcher d'appuyer sur la touche Entrée.