Ho un singolo EditText sul mio layout. Dopo che l'utente ha inserito del testo e premuto il tasto "done", vorrei rimuovere il cursore lampeggiante da esso. Ho setacciato per StackOverflow e ho trovato 3 risposte che non hanno funzionato per me. Il cursore lampeggiante rimane comunque.Come rimuovere lo stato attivo da EditText quando l'utente ha finito di modificare?
private class MyOnKeyListener implements OnKeyListener {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& keyCode == KeyEvent.KEYCODE_ENTER) {
// FAIL 0
MyActivity.this.findViewById(R.id.someOtherView).requestFocus();
// FAIL 1
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE
);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
// FAIL 2
MyActivity.this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
return true;
} else {
return false;
}
}
}
Questo l'ha risolto. Fa anche la cosa giusta rivelando il cursore quando la tastiera è aperta. Nasconde il cursore solo quando non lo stai modificando. – JoJo
WIsh Potrei dare più voti quando ho trovato 10 altre complicate risposte che non funzionavano prima di trovare questo. Grazie. – Glenn
Ho questo problema: http://stackoverflow.com/questions/23677895/saving-an-edittext-to-bitmap ----- Con questa soluzione, anche il pin è nascosto! Ma voglio nascondere solo la linea lampeggiante verticale. –