Antworten:
Sie können in Ihrer main.xml
Datei versuchen :
android:selectAllOnFocus="true"
Oder verwenden Sie in Java
editText.setSelectAllOnFocus(true);
editText.setSelectAllOnFocus(true);
Dies funktioniert, wenn Sie es programmgesteuert ausführen möchten.
Fragments
).
editText.requestFocus()
Problem im editText.clearFocus()
Voraus, um sicherzustellen, dass die gewünschte Aktion in dem Fall erfolgt, in dem die Ansicht bereits fokussiert ist
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 ... dann editText1.setOnFocusChangeListener(listener)
editText2.setOnFocusChangeListener(listener)
und so weiter ...
Ich weiß, dass Sie eine Lösung gefunden haben, aber der richtige Weg, um das zu tun, was Sie verlangen, besteht darin, einfach das android:hint
Attribut in Ihrem EditText zu verwenden. Dieser Text wird angezeigt, wenn das Feld leer und nicht fokussiert ist, verschwindet jedoch bei Auswahl des Felds EditText.
Warum versuchst du nicht android: tip = "Hinweis" , um dem Benutzer den Hinweis zu geben?
Der "Hinweis" verschwindet automatisch, wenn der Benutzer auf die Edittextbox klickt. Es ist die richtige und beste Lösung.
Sie können dem editText danach auch eine OnClick-Methode hinzufügen
_editText.setSelectAllOnFocus(true);
und darin:
_editText.clearFocus();
_editText.requestFocus();
Sobald Sie auf den editText klicken, wird der gesamte Text ausgewählt.
SelectAllOnFocus funktioniert beim ersten Fokussieren des EditText. Wenn Sie den Text jedoch jedes Mal auswählen möchten, wenn der Benutzer darauf klickt, müssen Sie editText.clearFocus()
zwischenzeitlich aufrufen .
Wenn Ihre App beispielsweise über einen EditText und eine Schaltfläche verfügt, bleibt der Fokus im EditText, wenn Sie nach dem Ändern des EditText auf die Schaltfläche klicken. Dann muss der Benutzer den Cursorgriff und die Rücktaste verwenden, um die Inhalte im EditText zu löschen, bevor er einen neuen Wert eingeben kann. Rufen Sie also editText.clearFocus()
die Button- onClick
Methode auf.
Ich habe eine obige Antwort versucht und habe nicht funktioniert, bis ich die Anweisungen geändert habe. Das hat bei mir funktioniert:
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();
}
}
Ich musste fragen, ob der Fokus auf dem EditText liegt, und wenn nicht, zuerst den Fokus anfordern und ihn dann löschen. Andernfalls würde die virtuelle Tastatur beim nächsten Klicken auf den EditText nie angezeigt
Fügen Sie dies einfach Ihrem editText in der XML-Datei hinzu
android: selectAllOnFocus = "true"
Das funktioniert bei mir:
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();
}
}
});