Έχω ένα EditText
και ένα Button
στη διάταξή μου.
Αφού γράψω στο πεδίο επεξεργασίας και κάνω κλικ στο Button
, θέλω να αποκρύψω το εικονικό πληκτρολόγιο. Υποθέτω ότι αυτό είναι ένα απλό κομμάτι κώδικα, αλλά πού μπορώ να βρω ένα παράδειγμα γι' αυτό;
Μπορείτε να αναγκάσετε το Android να αποκρύψει το εικονικό πληκτρολόγιο χρησιμοποιώντας το InputMethodManager, καλώντας το hideSoftInputFromWindow
, περνώντας το token του παραθύρου που περιέχει την εστιασμένη προβολή σας.
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
Αυτό θα επιβάλει την απόκρυψη του πληκτρολογίου σε όλες τις περιπτώσεις. Σε ορισμένες περιπτώσεις θα θέλετε να περάσετε το InputMethodManager.HIDE_IMPLICIT_ONLY
ως δεύτερη παράμετρο για να διασφαλίσετε ότι αποκρύπτετε το πληκτρολόγιο μόνο όταν ο χρήστης δεν το ανάγκασε ρητά να εμφανιστεί (κρατώντας πατημένο το μενού).
Σημείωση: Αν θέλετε να το κάνετε αυτό σε Kotlin, χρησιμοποιήστε:
context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
Σύνταξη Kotlin
// Check if no view has focus:
val view = this.currentFocus
view?.let { v ->
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
imm?.hideSoftInputFromWindow(v.windowToken, 0)
}
Επίσης, χρήσιμο για την απόκρυψη του soft-keyboard είναι:
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
Αυτό μπορεί να χρησιμοποιηθεί για την απόκρυψη του μαλακού πληκτρολογίου μέχρι ο χρήστης να αγγίξει πραγματικά την προβολή editText.
Δοκιμάστε τον παρακάτω κώδικα στην onCreate()
EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);