开发者

Android Show Soft Keyboard When First Activity Starts?

开发者 https://www.devze.com 2023-02-15 04:57 出处:网络
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

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.


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 !!!


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.


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

精彩评论

暂无评论...
验证码 换一张
取 消