Respostas:
Você pode tentar no seu main.xml
arquivo:
android:selectAllOnFocus="true"
Ou, em Java, use
editText.setSelectAllOnFocus(true);
editText.setSelectAllOnFocus(true);
Isso funciona se você quiser fazer programaticamente.
Fragments
).
editText.requestFocus()
problema editText.clearFocus()
com antecedência para garantir ação desejada ocorre no caso em que a vista é já focado
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 ... então editText1.setOnFocusChangeListener(listener)
editText2.setOnFocusChangeListener(listener)
e assim por diante ...
Eu sei que você encontrou uma solução, mas realmente a maneira correta de fazer o que você está pedindo é usar o android:hint
atributo no seu EditText. Este texto aparece quando a caixa está vazia e sem foco, mas desaparece ao selecionar a caixa EditText.
Por que você não tenta android: hint = "hint" para fornecer a dica ao usuário .. !!
A "dica" desaparecerá automaticamente quando o usuário clicar na caixa de edição. é a melhor e mais adequada solução.
Você também pode adicionar um método OnClick ao editText após
_editText.setSelectAllOnFocus(true);
e nisso:
_editText.clearFocus();
_editText.requestFocus();
Assim que você clicar no editText, todo o texto será selecionado.
SelectAllOnFocus funciona na primeira vez que o EditText obtém o foco, mas se você deseja selecionar o texto toda vez que o usuário clica nele, é necessário ligar editText.clearFocus()
entre as vezes.
Por exemplo, se seu aplicativo tiver um EditText e um botão, clicar no botão após alterar o EditText deixa o foco no EditText. Em seguida, o usuário deve usar a alça do cursor e a tecla Backspace para excluir o conteúdo do EditText antes de poder inserir um novo valor. Então chame editText.clearFocus()
o onClick
método do botão .
Tentei uma resposta acima e não funcionou até mudar as declarações. Isto é o que funcionou para mim:
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();
}
}
Eu tive que perguntar se o foco está no EditText, e se não solicitar o foco primeiro e depois limpá-lo. Caso contrário, nas próximas vezes que eu clicar no EditText, o teclado virtual nunca aparecerá
Basta adicionar isso ao seu editText no arquivo .xml
android: selectAllOnFocus = "true"
Isso funciona para mim:
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();
}
}
});