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.
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>
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.
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"
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.
Vous pouvez utiliser
<EditText
......
Android:imeOptions="actionNext" OR "actionDone" />
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
utilisation Android:singleLine="true"
propriété
<EditText
......
Android:singleLine="true"
Android:id="@+id/lastName"/>
Ou si vous voulez utiliser Java vous pouvez le faire:
edittext1.setSingleLine();
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