Sélectionnez tout le texte dans EditText quand il est actif

J’ai un EditText avec du texte factice. Lorsque l’utilisateur clique dessus, je souhaite qu’il soit sélectionné pour que, lorsque l’utilisateur commence à taper, le texte factice soit supprimé.

Comment puis-je atteindre cet objective?

Vous pouvez essayer dans votre fichier main.xml :

 android:selectAllOnFocus="true" 
 editText.setSelectAllOnFocus(true); 

Cela fonctionne si vous voulez le faire par programmation.

 EditText dummy = ... // android.view.View.OnFocusChangeListener dummy.setOnFocusChangeListener(new OnFocusChangeListener(){ public void onFocusChange(View v, boolean hasFocus){ if (hasFocus) && (isDummyText()) ((EditText)v).selectAll(); } }); 

Je sais que vous avez trouvé une solution, mais la manière la plus appropriée de faire ce que vous demandez est d’utiliser l’atsortingbut android:hint dans votre EditText. Ce texte apparaît lorsque la boîte est vide et non focalisée, mais disparaît lors de la sélection de la zone EditText.

Pourquoi ne pas essayer Android: hint = “hint” pour donner le conseil à l’utilisateur .. !!

Le “conseil” disparaîtra automatiquement lorsque l’utilisateur clique sur edittextbox. c’est la bonne et la meilleure solution.

Géré par l’appel du focus et la sélection au programme

 { editabletext.requestFocus(); editabletext.selectAll(); } 

SelectAllOnFocus fonctionne la première fois que EditText obtient le focus, mais si vous souhaitez sélectionner le texte chaque fois que l’utilisateur clique dessus, vous devez appeler editText.clearFocus() entre les temps.

Par exemple, si votre application possède un seul EditText et un seul bouton, cliquer sur le bouton après avoir modifié le EditText laisse le focus dans EditText. Ensuite, l’utilisateur doit utiliser la poignée de curseur et la touche Retour arrière pour supprimer le contenu de EditText avant de pouvoir entrer une nouvelle valeur. Appelez donc editText.clearFocus() dans la méthode onClick du onClick .

Vous pouvez également append une méthode OnClick au editText après

 _editText.setSelectAllOnFocus(true); 

et en cela:

 _editText.clearFocus(); _editText.requestFocus(); 

Dès que vous cliquez sur le editText, tout le texte est sélectionné.

J’ai essayé une réponse ci-dessus et n’a pas fonctionné jusqu’à ce que je commette les déclarations. C’est ce qui a fonctionné pour moi:

  myEditText.setSelectAllOnFocus(true); myEditText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onClickMyEditText(); } }); private void onClickMyEditText() { if(myEditText.isFocused()){ myEditText.clearFocus(); myEditText.requestFocus(); }else{ myEditText.requestFocus(); myEditText.clearFocus(); } } 

J’ai dû demander si le focus est sur le EditText, et sinon demander d’abord le focus et ensuite l’effacer. Sinon, les prochaines fois que j’ai cliqué sur EditText, le clavier virtuel n’apparaîtrait jamais.