Mi rendo conto che questo è un vecchio post, ma ho avuto lo stesso problema. Per me, il ragionamento è stato che mi piace spostare la tastiera (allontanarla) per orientarmi (o premere i pulsanti per aggiungere o rimuovere righe di dati) e quando ho toccato di nuovo EditText che stavo modificando in precedenza, era fastidioso riaprire la tastiera e il testo non selezionare, costringendomi a lavorare per portare il cursore dove volevo iniziare a cancellare, o toccare un altro EditText e quindi toccare nuovamente l'originale per riselezionare tutto . Voglio solo riavviare la tastiera e avere il testo selezionato e pronto per sovrascrivere ogni volta che vado su EditText.
Non ci sono soluzioni facili a questo:
1) rubinetto lungo fa questo per voi il più delle volte.
2) Se si sta già utilizzando setSelectAllOnFocus(true)
, si può semplicemente gettare un semplice clearFocus()
e requestFocus()
nel onClick ascoltatore:
etMyEditText.setSelectAllOnFocus(true);
etMyEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.clearFocus();
view.requestFocus();
}
});
In questo modo l'EditText ha tutto quello selezionato quando si tocca su di essa, a prescindere dalla stato della tastiera morbida.
bonus supplementare: Aggiungere android:windowSoftInputMode="adjustPan"
all'interno del tag <activity .../>
nel file AndroidManifest.xml per forzare l'EditText selezionato per rimanere in vista, quando la tastiera virtuale si apre.
fonte
2016-12-27 17:53:25
Questo è perfettamente normale. Altrimenti, non c'è modo per l'utente di sbarazzarsi della selezione. – CommonsWare
Hai provato selectAllOnFocus tramite codice java in un evento onclick? – AJcodez
cosa ti aspetti che * dovrebbe * accadere? secondo la tua logica, la selezione non sparirà mai una volta che l'utente ha cliccato su di essa. E 'davvero ciò che vuoi? –