Jak zamknąć klawiaturę po naciśnięciu przycisku?Android odrzuci klawiaturę
Odpowiedz
Chcesz wyłączyć lub odrzucić wirtualną klawiaturę?
Jeśli chcesz po prostu odrzucić go można użyć następujących linii kodu w swoim Buttona na zdarzenie click
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
+1. Działa jak urok. –
Dwa problemy z tym ... jednym z nich jest to, że myEditText musi być Final. Po drugie, muszę wiedzieć, na którym polu EditText się koncentruję. Jakieś rozwiązanie tego? –
Dla każdego, kto się tutaj potknie, możesz użyć działania (zarówno aktywności, w której się znajdujesz, jak i fragmentów 'getActivity()') 'getCurrentFocus(). GetWindowToken()' dla pierwszego argumentu 'hideSoftInputFromWindow()'. Zrób to również w 'onPause()', a nie 'onStop()' jeśli próbujesz zmusić go do odejścia podczas zmiany czynności. –
można również użyć tego kodu w przycisk kliknij zdarzenie
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Ta metoda była dla mnie jedyna, dzięki! – Emilio
Hmm. To dla mnie nie działa. – tomwhipple
Nie działa dla mnie ani na API 23 –
Pierwsze rozwiązanie z InputMethodManager działało jak mistrz dla mnie, metoda getWindow(). setSoftInputMode nie działa na Androidzie 4.0.3 HTC Amaze.
@Ethan Allen, nie musiałem robić ostatecznego tekstu edycji. Może używasz wewnętrznej klasy EditText, którą zadeklarowałeś jako metodę zawierającą? Możesz przekształcić EditText w zmienną klasy działania. Lub po prostu zadeklaruj nowy EditText wewnątrz wewnętrznej klasy/metody i ponownie użyj findViewById(). Ponadto nie stwierdziłem, że muszę wiedzieć, który EditText w formularzu się skupił. Mogę wybrać dowolnie i użyć go. Podobnie jak:
Witamy w Stack Overflow! To naprawdę komentarz, a nie odpowiedź. Przy odrobinie więcej powtórzeń [będziesz mógł dodawać komentarze] (http://stackoverflow.com/privileges/comment). – Jack
To jest poprawna odpowiedź. Dzięki Andy! –
Powyższe rozwiązanie nie działa dla wszystkich urządzeń, a ponadto używa EditText jako parametru. To jest moje rozwiązanie, po prostu zadzwoń tę prostą metodę:
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);
}
}
fantastyczny punkt, dzięki – Fattie
'isAcceptingText()' zrobił tę odpowiedź lepiej niż inni – user1506104
To jest moje rozwiązanie
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();
}
}
Oto rozwiązanie Kotlin (mieszanie różnych odpowiedzi w wątku)
Utwórz funkcja rozszerzenia (być może we wspólnej klasie ViewHelpers)
fun Activity.dismissKeyboard() {
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
if(inputMethodManager.isAcceptingText)
inputMethodManager.hideSoftInputFromWindow(this.currentFocus.windowToken, /*flags:*/ 0)
}
Wtedy po prostu zużywają przy użyciu:
// from activity
this.dismissKeyboard()
// from fragment
activity.dismissKeyboard()
- 1. Android: AutoCompleteTextView ukryj miękką klawiaturę
- 2. Kompozytor poczty iOS nie odrzuci
- 3. Nakładka na klawiaturę z klawiaturą Android
- 4. Android: jak ustawić klawiaturę zawsze widoczną?
- 5. Android: Ukryj klawiaturę po kliknięciu przycisku
- 6. Android: Pokazuje klawiaturę ukrywa zawartość listview
- 7. Android Ukryj klawiaturę podczas zmiany fragmentów
- 8. EditText ukryty przez klawiaturę, gdy android: gravity = "center" - Android
- 9. Android: Ukrywanie klawiaturę w zastąpionej „Gotowe” naciśnięcie klawisza z EditText
- 10. Jak otworzyć klawiaturę po kliknięciu przycisku w systemie Android?
- 11. Android Usuń miękką klawiaturę podczas dotykania widoku listy
- 12. Jak pokazać miękką klawiaturę doskonale w fragmencie w systemie Android?
- 13. zmienić domyślną klawiaturę Android za pomocą ADB lub kod Java
- 14. Android: ustaw alfanumeryczną klawiaturę, aby najpierw wyświetlać numerycznie w EditText
- 15. Jak opracować niestandardową klawiaturę programową dla systemu Android?
- 16. Android: programowo otwierać miękką klawiaturę w widoku emotikonów
- 17. Android EditText pytanie, należy wymienić klawiaturę wprowadzić z done
- 18. Wyświetl klawiaturę dla EditText w emulatorze (GenyMotion) Android 4.3
- 19. Wyświetl klawiaturę programową, mimo że podłączono klawiaturę sprzętową.
- 20. Odrzuć klawiaturę na IPAD
- 21. Wyświetlanie UIMenuController traci klawiaturę
- 22. Programowo wywołujesz klawiaturę emoji?
- 23. jak wyświetlić klawiaturę telefoniczną
- 24. Ukryj miękką klawiaturę
- 25. Ustawianie NSAllowsArbitraryLoads w iOS 9 - Czy Apple odrzuci aplikację?
- 26. MPMoviePlayerController nie odrzuci automatycznie filmu po skończeniu gry (ios 6)
- 27. Jak ukryć klawiaturę klawisza Enter
- 28. Wyświetl wirtualną klawiaturę w Androidzie TabLayout
- 29. Pokaż klawiaturę oprogramowania bez EditText
- 30. Pokaż klawiaturę numeryczną w WebView
Zrób EditText Regulowana = False spełnia swoje zadanie. Czy chcesz go całkowicie wyłączyć? – st0le