Lorsque j'appuie sur «Suivant», le focus sur le User EditText doit être déplacé vers le mot de passe. Ensuite, à partir du mot de passe, il doit se déplacer vers la droite et ainsi de suite. Pouvez-vous m'aider à le coder?
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="User Name*" />
<EditText
android:id="@+id/txt_User"
android:layout_width="290dp"
android:layout_height="33dp"
android:singleLine="true" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password*" />
<EditText
android:id="@+id/txt_Password"
android:layout_width="290dp"
android:layout_height="33dp"
android:singleLine="true"
android:password="true" />
<TextView
android:id="@+id/confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password*" />
<EditText
android:id="@+id/txt_Confirm"
android:layout_width="290dp"
android:layout_height="33dp"
android:singleLine="true"
android:password="true" />
</LinearLayout>
android
android-edittext
androidBoomer
la source
la source
Réponses:
Gestion de la mise au point
Le mouvement de mise au point est basé sur un algorithme qui trouve le plus proche voisin dans une direction donnée. Dans de rares cas, l'algorithme par défaut peut ne pas correspondre au comportement souhaité du développeur.
Modifiez le comportement par défaut de la navigation directionnelle à l'aide des attributs XML suivants:
Outre la navigation directionnelle, vous pouvez utiliser la navigation par onglets. Pour cela, vous devez utiliser
Pour obtenir une vue particulière pour se concentrer, appelez
Pour écouter certains événements de focus changeants, utilisez un
View.OnFocusChangeListener
Bouton clavier
Vous pouvez utiliser
android:imeOptions
pour gérer ce bouton supplémentaire sur votre clavier.Les constantes d'imeOptions incluent une variété d'actions et de drapeaux, voir le lien ci-dessus pour leurs valeurs.
Exemple de valeur
ActionSuivant :
Action terminée :
Exemple de code:
Si vous souhaitez écouter les événements imeoptions, utilisez a
TextView.OnEditorActionListener
.la source
android:nextFocusForward="@+id/.."
fait l'affaire.android:imeOptions="actionNext"
tous mes EditTexts et le problème a disparu. Merci beaucoup.devrait apporter le même effet. Après avoir cliqué sur suivant pour amener le focus sur l'élément suivant.
utilisez-le en plus si vous ne voulez pas que la vue suivante se concentre
la source
ajoutez votre editText
ajouter une propriété à l'activité dans le manifeste
dans le fichier de mise en page ScrollView défini comme mise en page racine ou parent tout ui
si vous ne voulez pas à chaque fois qu'il ajoute, créez un style: ajoutez un style dans values / style.xml
Style par défaut:
la source
android:singleLine="true"
est interdite.Utilisez la ligne suivante
parentedit
est l'ID du prochainEditText
à se concentrer.La ligne ci-dessus aura également besoin de la ligne suivante.
ou
Merci pour la suggestion @Alexei Khlebnikov.
la source
android:inputType="text"
ouandroid:inputType="number"
.Ajout d'un champ supplémentaire
travaillé dans mon cas!
la source
Ces trois lignes font la magie
la source
Dans votre gestionnaire onEditorAction, gardez à l'esprit que vous devez renvoyer un booléen qui indique si vous gérez l'action (true) ou si vous avez appliqué une logique et souhaitez le comportement normal (false), comme dans l'exemple suivant:
J'ai trouvé cela lorsque je suis revenu vrai après avoir exécuté ma logique car la concentration ne bougeait pas.
la source
utilisez simplement le code suivant, cela fonctionnera bien et utilisez inputType pour chaque edittext et le bouton suivant apparaîtra sur le clavier.
la source
Dans certains cas, vous devrez peut-être déplacer manuellement le focus vers le champ suivant:
Vous pourriez en avoir besoin si, par exemple, vous avez un champ de texte qui ouvre un sélecteur de date au clic, et que vous souhaitez que le focus passe automatiquement au champ de saisie suivant une fois qu'une date est sélectionnée par l'utilisateur et que le sélecteur se ferme. Il n'y a aucun moyen de gérer cela en XML, cela doit être fait par programme.
la source
De manière simple, lorsque vous avez peu de champs un par un:
Besoin de régler
android:maxLines="1"
android:imeOptions="actionNext"
android:inputType=""
<- Définissez votre type de texte, dans les autres cas, il sera multiligne et empêchera de passer au suivantÉchantillon:
la source
Essayez d'utiliser android: imeOptions = "actionNext" pour chaque editText dans la vue, il se concentrera automatiquement sur le prochain edittext lorsque vous cliquez sur Suivant du softKeyboard.
la source
la source
Si vous souhaitez utiliser une multiligne
EditText
avecimeOptions
, essayez:la source
Ajouter inputType à edittext et sur entrer, il ira au prochain edittext
et beaucoup plus.
la source
Dans Kotlin, j'ai utilisé Bellow comme ..
xml:
en kotlin:
la source
la source
Si vous avez l'élément en mode défilement, vous pouvez également résoudre ce problème en:
et dans votre activité:
la source
Manière simple:
Ajoutez ceci au champ edittext dans le fichier .xml
la source