Ako nastaviť viditeľnosť Softvérová klávesnica Android

V mojom rozložení mám EditText a Button.

Po napísaní textu do editačného poľa a kliknutí na tlačidlo Button chcem skryť virtuálnu klávesnicu. Predpokladám, že ide o jednoduchý kus kódu, ale kde nájdem jeho príklad?

Systém Android môžete prinútiť, aby skryl virtuálnu klávesnicu pomocou InputMethodManager, pričom zavoláte hideSoftInputFromWindow a odovzdáte token okna, v ktorom sa nachádza váš zameraný pohľad.

// 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);
}

Týmto spôsobom sa klávesnica skryje vo všetkých situáciách. V niektorých prípadoch budete chcieť ako druhý parameter odovzdať InputMethodManager.HIDE_IMPLICIT_ONLY, aby ste zabezpečili, že klávesnicu skryjete len vtedy, keď si ju používateľ explicitne nevynútil (podržaním menu).

Poznámka: Ak to chcete urobiť v jazyku Kotlin, použite: context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager

Syntax jazyka 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)
 }
Komentáre (34)

Užitočné je aj skrytie softvérovej klávesnice:

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

Toto sa dá použiť na potlačenie softvérovej klávesnice, kým sa používateľ skutočne nedotkne zobrazenia editText View.

Komentáre (13)

Skúste prosím tento kód v onCreate()

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);
Komentáre (6)