android - show soft keyboard on demand

孤人 提交于 2019-12-28 07:08:20

问题


Hi I wrapped edittext control onto a control that is being displayed on the screen at users request. It overlays the whole screen until user presses 'done' button on the keyboard.

I am not able to explicitly show the control on the screen. only when user taps into control only then its shown. Am I missing something?

I even try this and it does not brin it up when I launch the overlay that Edit Text exists on:

customCOntrol.showKeyboard();

public void showKeyboard()
    {
        InputMethodManager imm = (InputMethodManager)_context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(this._textView.getWindowToken(), InputMethodManager.SHOW_IMPLICIT);
    }

here is the settig I have on the screen itself in the config file android:windowSoftInputMode="stateHidden|adjustPan"

Thank you in advance


回答1:


In your showKeyboard function you are calling:

 imm.hideSoftInputFromWindow(this._textView.getWindowToken(), InputMethodManager.SHOW_IMPLICIT);

This will hide the softInput keyboard from the window! Do you want to show the keyboard? If yes then would you use:

 imm.showSoftInput(view, flags, resultReceiver);

EDIT: I think you can also toggle the keyboard from the InputMethodManager, try:

 imm.toggleSoftInput(0, 0);



回答2:


@dropsOfJupiter

You can do: editText.requestFocus() as you launch the Activity or Fragment containing your EditText reference. This will give the focus to the EditText and will bring uo the SoftKeyboard.

I hope this helps.



来源:https://stackoverflow.com/questions/6475135/android-show-soft-keyboard-on-demand

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!