249 votes

Comment définir la position du curseur dans un EditText ?

Il y a deux EditText Lors du chargement de la page, un texte est placé dans le premier EditText, de sorte que le curseur se trouve à l'endroit où commence le texte. EditText Je veux définir la position du curseur dans le deuxième EditText qui ne contient aucune donnée. Comment faire ?

2 votes

Vous pouvez régler sa gravité sur 'center'. le curseur sera automatiquement placé au centre. votre texte sera alors également centré.

0 votes

Tout d'abord, essayez d'améliorer votre ratio d'acceptation. ensuite, qu'entendez-vous par définir la position du curseur, lorsqu'il n'y a pas de texte dans edittext ?

516voto

NotACleverMan Points 2918

Où la position est un int :

editText1.setSelection(position)

0 votes

Y a-t-il un moyen de faire cela au niveau du fichier XML ?

0 votes

@kike je ne pense pas

1 votes

Utiliser Android:selection en xml avec liaison de données

101voto

MKJParekh Points 18108

J'ai utilisé cette méthode pour régler la position du curseur sur fin du texte après la mise à jour programmatique du texte de l'EditText ici, etmsg est EditText

etmsg.setText("Updated Text From another Activity");
int position = etmsg.length();
Editable etext = etmsg.getText();
Selection.setSelection(etext, position);

5 votes

+1 ah ! Sympa ça m'a aidé à définir la position du curseur dans edittext.

2 votes

Cela n'a pas fonctionné pour moi. J'ai des chaînes de caractères espaçables dans mon EditText. Existe-t-il une solution de contournement pour cela ?

1 votes

@toobsco42 Bonjour, je viens d'essayer d'utiliser Spannable String dans edittext vérifiez ceci pastebin.com/i02ZrNw4 et il fonctionne comme prévu comme il devrait l'être vérifiez et comparez

19voto

Reno Points 22138

Je veux définir la position du curseur dans un texte d'édition qui ne contient pas de données.

Il n'existe qu'une seule position dans un EditText vide, il s'agit de setSelection(0) .

Ou vous voulez dire que vous voulez vous concentrer sur votre EditText quand votre activité s'ouvre ? Dans ce cas, son requestFocus()

0 votes

SetSelection(0) ne fonctionne pas ,je ne veux pas obtenir le focus sur le second EditText, je veux seulement placer le curseur dans le second EditText.

3 votes

Si je me souviens bien, lorsqu'un EditText demande le focus, le curseur est placé. Lire la suite

10voto

monish george Points 128

Si editText2 est votre deuxième vue EditText, alors mettez le morceau de code suivant dans onResume()

editText2.setFocusableInTouchMode(true);
editText2.requestFocus();

ou mettre

<requestFocus />

dans votre mise en page xml de la deuxième vue EditText.

5voto

Avinash Points 359

setSelection(int index) méthode dans Edittext devrait vous permettre de le faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X