Come si elimina la tastiera quando si preme un pulsante?Tastiera congedo Android
risposta
Si desidera disabilitare o ignorare una tastiera virtuale?
Se si vuole licenziare solo che è possibile utilizzare le seguenti righe di codice nelle vostre del pulsante su evento Click
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
+1. Funziona come un fascino. –
Due problemi con questo .... uno è che myEditText deve essere Final. Il secondo è che devo sapere quale casella EditText ha il focus. Qualche soluzione a questo? –
Per chiunque altro inciampi qui, è possibile utilizzare l'attività (o l'attività in cui ci si trova oi frammenti 'getActivity()') 'getCurrentFocus(). GetWindowToken()' per il primo argomento a 'hideSoftInputFromWindow()'. Inoltre, fallo in 'onPause()' e non in 'onStop()' se stai cercando di farla sparire quando cambi attività. –
è anche possibile utilizzare questo codice su tasto evento click
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Quel metodo era l'unico che funzionava per me, grazie! – Emilio
Hmm. Questo non funziona affatto per me. – tomwhipple
Non funziona per me sull'API 23 –
Il la prima soluzione con InputMethodManager ha funzionato come un campione per me, il metodo getWindow(). setSoftInputMode non ha funzionato su Android 4.0.3 HTC Amaze.
@Ethan Allen, non ho bisogno di rendere il testo di modifica finale. Forse stai usando una classe interna EditText che hai dichiarato il metodo di contenimento? Potresti rendere EditText una variabile di classe dell'Attività. O semplicemente dichiarare un nuovo EditText all'interno della classe interna/metodo e utilizzare findViewById() di nuovo. Inoltre, non ho trovato che avevo bisogno di sapere quale EditText nel modulo aveva il focus. Potrei sceglierne uno arbitrariamente e usarlo. In questo modo:
Benvenuti in Stack Overflow! Questo è davvero un commento, non una risposta. Con un po 'più di ripetizione, [sarai in grado di postare commenti] (http://stackoverflow.com/privileges/comment). – Jack
È una risposta corretta. Grazie Andy! –
Questa soluzione non funziona per tutto il dispositivo e inoltre è usando EditText come parametro. Questa è la mia soluzione, basta chiamare questo metodo semplice:
private void hideSoftKeyBoard() {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
if(imm.isAcceptingText()) { // verify if the soft keyboard is open
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
punto fantastico, grazie – Fattie
'isAcceptingText()' ha reso questa risposta migliore di altri – user1506104
Questa è la mia soluzione
public static void hideKeyboard(Activity activity) {
View v = activity.getWindow().getCurrentFocus();
if (v != null) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
public static void hideSoftInput(Activity activity) {
try {
if (activity == null || activity.isFinishing()) return;
Window window = activity.getWindow();
if (window == null) return;
View view = window.getCurrentFocus();
//give decorView a chance
if (view == null) view = window.getDecorView();
if (view == null) return;
InputMethodManager imm = (InputMethodManager) activity.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm == null || !imm.isActive()) return;
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
} catch (Throwable e) {
e.printStackTrace();
}
}
Ecco una soluzione Kotlin (mescolando le varie risposte in discussione)
creare un funzione di estensione (forse in una classe ViewHelpers comune)
fun Activity.dismissKeyboard() {
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
if(inputMethodManager.isAcceptingText)
inputMethodManager.hideSoftInputFromWindow(this.currentFocus.windowToken, /*flags:*/ 0)
}
Poi semplicemente consumano utilizzando:
// from activity
this.dismissKeyboard()
// from fragment
activity.dismissKeyboard()
- 1. Tastiera Android premere overlay tastiera
- 2. Tastiera numerica su Android
- 3. Tastiera Android nasconde EditText
- 4. Tastiera Android oscura EditText
- 5. Estendi tastiera virtuale Android
- 6. Origine tastiera Android
- 7. Android show tastiera programmaticamente
- 8. Tastiera Android. Sfondo chiave
- 9. Lingua layout tastiera Android
- 10. Tastiera Android api
- 11. Android - Rileva la tastiera visibile?
- 12. Android EditText in ListView - tastiera
- 13. Apertura tastiera rallentata per Android
- 14. Tastiera software specifica per Android
- 15. Android: AutoCompleteTextView nascondi tastiera virtuale
- 16. Android - Premere il tasto tastiera
- 17. Tastiera software Android non funzionante
- 18. Android PhoneGap - tastiera numerica solo
- 19. perché non l'ng-congedo/ng-ENTER classi vengono aggiunti
- 20. Android tastiera personalizzata tastiera pop-up sulla pressione lunga
- 21. Impostazione della modalità tastiera nella tastiera personalizzata Android
- 22. Come mostrare l'emulatore Android senza tastiera
- 23. Disattiva l'input da tastiera su Android TimePicker
- 24. Impossibile utilizzare la tastiera nell'emulatore Android
- 25. Rileva eliminazione evento tastiera in Android
- 26. Tasto "Vai" della tastiera Android su "Cerca"
- 27. Come chiudere la tastiera in SearchView Android?
- 28. Android - tasto della tastiera personalizzato e azione
- 29. Disabilitazione Android Tasto Invio nella tastiera virtuale
- 30. Android: layout_alignParentBottom = "true" con l'utilizzo della tastiera
Fai un EditText Focusable = False fa il lavoro. Vuoi disabilitarlo completamente? – st0le