Force soft keyboard, чтобы показать, когда EditText получает фокус

У меня есть EditText, что я делаю фокус программно. Но когда я это делаю, я хочу, чтобы клавиатура также отображалась (и затем спускайтесь, когда этот EditText теряет фокус). Прямо сейчас пользователь должен щелкнуть по EditText, чтобы отобразить клавиатуру – даже подумал, что EditText уже имеет фокус.

Solutions Collecting From Web of "Force soft keyboard, чтобы показать, когда EditText получает фокус"

Вот как я показываю ketyboard:

EditText yourEditText= (EditText) findViewById(R.id.yourEditText); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); 
 <activity android:name=".YourActivity" android:windowSoftInputMode="stateVisible" /> 

Добавьте это в файл манифеста …

Чтобы показать клавиатуру, используйте следующий код.

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); 

Чтобы скрыть клавиатуру, используйте код ниже. Et – ссылка на EditText

 InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(et.getWindowToken(), 0); 

Установите для своей активности в вашем манифесте клавиатуру поп-клавиатуры автоматически, когда на экране появляется окно EditText

 <activity android:windowSoftInputMode="stateAlwaysVisible" ... /> 

Чтобы скрыть клавиатуру при потере фокуса, установите OnFocusChangeListener для EditText.

В onCreate ()

 EditText editText = (EditText) findViewById(R.id.textbox); OnFocusChangeListener ofcListener = new MyFocusChangeListener(); editText.setOnFocusChangeListener(ofcListener); 

Добавить этот класс

 private class MyFocusChangeListener implements OnFocusChangeListener { public void onFocusChange(View v, boolean hasFocus){ if(v.getId() == R.id.textbox && !hasFocus) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); } } } 

Чтобы сделать это на основе прослушивателя фокуса, вам необходимо:

 final InputMethodManager imm =(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); editText.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(hasFocus){ imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); }else{ imm.hideSoftInputFromWindow(et.getWindowToken(), 0); } imm.toggleSoftInput(0, 0); } }); 

Надеюсь это поможет.

С уважением!