Réponses:
Vous pouvez essayer dans votre main.xml
fichier:
android:selectAllOnFocus="true"
Ou, en Java, utilisez
editText.setSelectAllOnFocus(true);
editText.setSelectAllOnFocus(true);
Cela fonctionne si vous voulez le faire par programme.
Fragments
).
editText.requestFocus()
problème à l' editText.clearFocus()
avance pour vous assurer que l'action souhaitée se produit dans le cas où la vue est déjà focalisée
EditText dummy = ...
// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
public void onFocusChange(View v, boolean hasFocus){
if (hasFocus) && (isDummyText())
((EditText)v).selectAll();
}
});
OnFocusChangeListener listener = new OnFocusChangeListener
... etc ... alors editText1.setOnFocusChangeListener(listener)
editText2.setOnFocusChangeListener(listener)
et ainsi de suite ...
Je sais que vous avez trouvé une solution, mais vraiment la bonne façon de faire ce que vous demandez est d'utiliser simplement l' android:hint
attribut dans votre EditText. Ce texte apparaît lorsque la zone est vide et non focalisée, mais disparaît lors de la sélection de la zone EditText.
Pourquoi n'essayez-vous pas Android: hint = "hint" pour fournir l'astuce à l'utilisateur .. !!
Le "conseil" disparaîtra automatiquement lorsque l'utilisateur cliquera sur la edittextbox. c'est la bonne et la meilleure solution.
Vous pouvez également ajouter 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 texte d'édition, tout le texte est sélectionné.
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 appelereditText.clearFocus()
entre les fois.
Par exemple, si votre application a un EditText et un bouton, cliquer sur le bouton après avoir modifié le EditText laisse le focus dans le EditText. Ensuite, l'utilisateur doit utiliser la poignée du curseur et la touche de retour arrière pour supprimer le contenu de EditText avant de pouvoir entrer une nouvelle valeur. Appelez donc editText.clearFocus()
la onClick
méthode du bouton .
J'ai essayé une réponse ci-dessus et n'ai pas fonctionné jusqu'à ce que je permute 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();
}
}
Je devais demander si le focus est sur le EditText, et sinon demander le focus d'abord et ensuite l'effacer. Sinon, la prochaine fois que je clique sur EditText, le clavier virtuel n'apparaîtra jamais
Ajoutez simplement ceci à votre editText dans le fichier .xml
android: selectAllOnFocus = "true"
Cela fonctionne pour moi:
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(myEditText.isFocused()){
myEditText.requestFocus();
myEditText.clearFocus();
myEditText.setSelection(myEditText.getText().length(), 0);
}else{
myEditText.requestFocus();
myEditText.clearFocus();
}
}
});