Android Show Soft Keyboard When First Activity Starts?

拈花ヽ惹草 提交于 2019-12-30 01:24:10

问题


I need to display the virtual keyboard when the application starts, but so far I've failed.

I use this code in method "OnCreate"to display the virtual keyboard

    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(txtBuscar.getId(), InputMethodManager.SHOW_FORCED);

this code works fine on any screen at any time, but does not work when the "first" activity begins. Why?

I tried it when I start another activity and it works, but does not work when I start the "first"activity.

I tried to put this code in the events "OnCreate"and many more .... but it seems not work.

is there anyway to "force" to display the keyboard when I start the application?

Thanks in advance.


回答1:


I Found the solution:

txtPassword.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager keyboard = (InputMethodManager)
                getSystemService(Context.INPUT_METHOD_SERVICE);
                keyboard.showSoftInput(txtPassword, 0); 
            }
        },200);

Thanks !!!




回答2:


onCreate will not be called if the activity is first brought from background. Have you tried put that code in onResume?

onCreate is called only when activity is first start or the activity is killed and user navigate to the activity again. So if the activity is still alive but in background, it will not call onCreate.

On the other hand, onResume will be called every time the activity comes to foreground (visible on screen) from background.

Here is link to activity life cycle if you are interested http://developer.android.com/reference/android/app/Activity.html.

Hope it helps.




回答3:


I faced with the same issue, this method below helped me

public static void showKeyboard(Context context) {
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm != null) {
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
    }
}


来源:https://stackoverflow.com/questions/5227118/android-show-soft-keyboard-when-first-activity-starts

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