Πώς να ρυθμίσετε την ορατότητα Android Soft Keyboard

Έχω ένα 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)
 }
Σχόλια (34)

Επίσης, χρήσιμο για την απόκρυψη του soft-keyboard είναι:

getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);

Αυτό μπορεί να χρησιμοποιηθεί για την απόκρυψη του μαλακού πληκτρολογίου μέχρι ο χρήστης να αγγίξει πραγματικά την προβολή editText.

Σχόλια (13)

Δοκιμάστε τον παρακάτω κώδικα στην onCreate()

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);
Σχόλια (6)