web-dev-qa-db-fra.com

Désactiver Entrée dans editText android

J'ai un EditText mais je ne veux qu'une seule ligne. Je mets du citron vert

<item name="Android:maxLines">1</item>
<item name="Android:minLines">1</item>
<item name="Android:lines">1</item>

mais ne fonctionne pas.

enter image description here

Voir mon code:

<LinearLayout style="@style/linearInputEntryText">
    <LinearLayout  style="@style/subLinearLayout">
        <TextView style="@style/label" Android:text="Last Name" Android:id="@+id/textView2"/>
        <EditText style="@style/editTextEntryName" Android:id="@+id/lastName"/>
    </LinearLayout>
    <View style="@style/linearInputEntryBlack" > </View>
</LinearLayout>

et styles:

<style name="editTextEntryName" parent="editTextEntry">
    <item name="Android:maxLines">1</item>
    <item name="Android:minLines">1</item>
    <item name="Android:lines">1</item>
    <item name="Android:layout_gravity">left</item>
</style>
21
christian russo

En raison des différentes versions de Android, la meilleure pratique consiste à inclure ces paramètres en même temps:

<item name="Android:maxLines">1</item>
<item name="Android:lines">1</item>
<item name="Android:singleLine">true</item>

Sinon, cela ne fonctionnera pas correctement sur certains appareils.

34
Kelevandos

Android: maxLines = "1" permet au texte d'être multiligne mais limite la hauteur de edittext pour afficher une seule ligne.

Si vous souhaitez désactiver la touche entrée (nouvelle ligne), définissez le type d'entrée sur texte

    Android:inputType="text"
30
Shivam

Veuillez utiliser

Android:singleLine="true"

au lieu de

    <item name="Android:maxLines">1</item>
    <item name="Android:minLines">1</item>
    <item name="Android:lines">1</item>

Cet attribut unique suffit pour que votre EditText accepte une seule ligne de texte et désactiver le bouton Entrée.

MISE À JOUR

Ne vous inquiétez pas de ce commentaire,

Android: singleLine est déconseillé ce n'est pas une bonne pratique de l'utiliser

Cet attribut est officiellement pris en charge et n'est en aucun cas déprécié. Et il est également garanti que cela fonctionnera sur tous les appareils et sur toutes les versions Android.

21
Aritra Roy

Vous pouvez utiliser

<EditText 
   ......
   Android:imeOptions="actionNext" OR "actionDone" />
5
Abdul Rahman

Utilisation Android:singleLine=true au lieu Android:maxLines=1

Veuillez lire à propos de singleLine

http://developer.Android.com/reference/Android/widget/TextView.html#attr_Android:singleLine

2
IntelliJ Amiya

utilisation Android:singleLine="true" propriété

     <EditText 
       ......
       Android:singleLine="true"
       Android:id="@+id/lastName"/>
1
Rustam

Ou si vous voulez utiliser Java vous pouvez le faire:

    edittext1.setSingleLine();
1
LukaxH

Cela a fonctionné pour moi,

en définissant onKeyListener pour le editText dans mon onCreateView -

editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            return (keyCode == KeyEvent.KEYCODE_ENTER);
        }
});

Modifier: cela peut ne pas fonctionner si vous utilisez Android clavier par défaut

1
Roshan