duplicata possible: android-singleline-true-not-working-for-edittext
Je veux faire le EditText
ci-dessus pour avoir seulement une seule ligne. Même si l’utilisateur appuie sur “enter”, le curseur ne doit pas descendre à la deuxième ligne. Quelqu’un peut-il m’aider à faire ça?
Utilisez android:maxLines="1"
et android:inputType="text"
Vous avez oublié l’atsortingbut android: maxLines . Et se référer pour Android: inputType Avec votre exemple, ci-dessous donnera ce résultat:
Utiliser android:singleLine="true"
est obsolète.
Ajoutez simplement votre type d’entrée et définissez maxline sur 1 et tout fonctionnera correctement
android:inputType="text" android:maxLines="1"
android:singleLine
est maintenant obsolète. De la documentation :
Cette constante est obsolète au niveau 3 de l’API.
Cet atsortingbut est obsolète. Utilisez plutôt
maxLines
pour modifier la disposition d’un texte statique et utiliseztextMultiLine
indicateurtextMultiLine
dans l’atsortingbut inputType pour les vues de texte modifiables (si singleLine et inputType sont fournis, les indicateurs inputType remplacent la valeur de singleLine).
Vous pouvez donc simplement définir android:inputType="textEmailSubject"
ou toute autre valeur correspondant au contenu du champ.
Vous devez append cette ligne dans votre EditText au format XML:
android:maxLines="1"
android:maxLines="1" android:inputType="text"
Ajoutez le code ci-dessus pour avoir une seule ligne dans la balise EditText dans votre présentation.
android:singleLine="true" is deprecated
Cette constante est obsolète au niveau 3 de l’API .
Cet atsortingbut est obsolète. Utilisez plutôt maxLines pour modifier la disposition d’un texte statique et utilisez plutôt l’indicateur textMultiLine dans l’atsortingbut inputType pour les vues de texte modifiables (si singleLine et inputType sont fournis, les indicateurs inputType remplacent la valeur de singleLine).
Maintenant, android:singleLine
atsortingbut android:singleLine
est obsolète. Veuillez append ces atsortingbuts à votre EditText
pour qu’un EditText
soit à une seule ligne.
android:inputType="text" android:imeOptions="actionNext" android:maxLines="1"
Je l’ai fait par le passé avec android:singleLine="true"
, puis en ajoutant un écouteur pour la touche “enter”:
((EditText)this.findViewById(R.id.mytext)).setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) { //if the enter key was pressed, then hide the keyboard and do whatever needs doing. InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0); //do what you need on your enter key press here return true; } return false; } });
Cela fonctionnera pour le EditText:
android:inputType="text"
Ensuite, je définirais une longueur maximale pour le texte d’entrée:
android:maxLines="1"
Ce sont les 2 qui sont nécessaires maintenant.
Inclure android:singleLine="true"
Tout le monde montre la méthode XML, sauf qu’une personne a appelé la méthode setMaxLines d’EditText. Cependant, quand je l’ai fait, cela n’a pas fonctionné. Une chose qui a fonctionné pour moi a été de définir le type d’entrée.
EditText editText = new EditText(this); editText.setInputType(InputType.TYPE_CLASS_TEXT);
Cela permet d’utiliser AZ, az, 0-9 et des caractères spéciaux, mais ne permet pas d’appuyer sur enter. Lorsque vous appuyez sur Entrée, vous accédez au composant graphique suivant, le cas échéant, dans votre application.
Vous pouvez également définir le nombre maximum de caractères pouvant être insérés dans cet EditText. Sinon, vous pouvez également supprimer tout ce qui se trouve à droite de l’écran, ou simplement quitter l’écran lui-même. Vous pouvez le faire comme ceci:
InputFilter[] filters = new InputFilter[1]; filters[0] = new InputFilter.LengthFilter(8); editText.setFilters(filters);
Cela définit les caractères max à 8 dans ce EditText. J’espère que tout cela vous aide.
Pour restreindre, il vous suffit de définir l’option de ligne unique sur “true”.
android:singleLine="true"
utilisation
android:ellipsize="end" android:maxLines="1"
Utilisez le code ci-dessous au lieu de votre code
Le @Aleks G OnKeyListener () fonctionne très bien, mais je l’ai lancé depuis MainActivity et j’ai donc dû le modifier légèrement:
EditText searchBox = (EditText) findViewById(R.id.searchbox); searchBox.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) { //if the enter key was pressed, then hide the keyboard and do whatever needs doing. InputMethodManager imm = (InputMethodManager) MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(searchBox.getApplicationWindowToken(), 0); //do what you need on your enter key press here return true; } return false; } });
J’espère que cela aidera quiconque essaie de faire la même chose.
Il est également important de faire attention si la propriété Android: inputType est textMultiLine . Si oui, les propriétés Android: singleLine, Android: imeOptions, Android: Ellipsize et AndroidLines seront ignorées et votre EditText acceptera de toute façon MultiLines.
Ajoutez cette ligne à votre edittext
android: inputType = “text”
Par programmation:
textView.setMaxLines(1);
Comme android:singleLine="true"
est maintenant déprécié alors utilisez
Utilisez plutôt maxLines pour modifier la disposition d’un texte statique et utilisez plutôt l’indicateur textMultiLine dans l’atsortingbut inputType pour les vues de texte modifiables (si singleLine et inputType sont fournis, les indicateurs inputType remplacent la valeur de singleLine).
veuillez essayer ce code
android:inputType="textPersonName"
dans le fichier XML, ajoutez cette propriété dans Edit Text
android:maxLines="1"
android:imeOptions="actionDone"
travaillé pour moi