2011-05-15 6 views
33

Ma mise en page comporte 4 affichages EditText et un bouton d'envoi. Je dois avoir le bouton "Next" pour les 3 premiers EditText et un bouton "Done" pour le 4ème champ EditText à la place d'une touche "New Line" du clavier logiciel.Bouton d'action du clavier logiciel Android

Comment cela peut-il être fait?

+0

Sont-ils multi-lignes? et quelle était la version d'Android que vous utilisiez? il suffit de demander ... –

Répondre

65

Dans votre modèle, définissez simplement les attributs XML android:imeOptions="actionNext" pour vos trois premières zones de texte et android:imeOptions="actionDone" pour le dernier.

Voir: android:imeOptions documentation

En outre, il y a un petit exemple de XML dans le training docs.

+4

Salut Martin, android: imeOptions = "actionNext" fonctionne bien pour l'EditText avec android: inputType = "texte", Mais pour EditText avec android: inputType = "textMultiLine" pas. –

+0

@Venkat, vous pouvez essayer 'flagNavigateNext' à la place:" ... permet à l'IME d'être multiligne (avec une touche d'entrée) ainsi que de fournir une navigation vers l'avant ... "(voir le premier lien ci-dessus). –

+0

Salut Martin, je fais "Erreur: types de chaînes non autorisés" en utilisant android: imeOptions = "flagNavigateNext" pour EditText –

1

Je pense que ce que vous cherchez quelque chose comme ceci:

EditText nextText = new EditText(this) 
{ 
    @Override 
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs) 
    { 
     outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT; 
     return (super.onCreateInputConnection(outAttrs)); 
    } 
}; 

EditText doneText = new EditText(this) 
{ 
    @Override 
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs) 
    { 
     outAttrs.imeOptions |= EditorInfo.IME_ACTION_DONE; 
     return (super.onCreateInputConnection(outAttrs)); 
    } 
}; 

Il premier prendra l'utilisateur au champ suivant dans la mise en page qui accepte le texte. La seconde fermera l'IME (le clavier logiciel).

5

pour naviguer dans le focus sur le champ suivant Modif

android:imeOptions="flagNavigateNext"

et pour rejeter la touche programmable avec fait, cliquez sur ajouter

android:imeOptions="actionDone"

sur votre mise en page :)

2

Ajouter android:singleLine="true" dans votre bouton xml

Questions connexes