2011-03-08 20 views
5

Necesito mostrar el teclado virtual cuando se inicia la aplicación, pero hasta ahora he fallado.Android Show Soft Keyboard cuando comienza la primera actividad?

utilizo este código en el método "OnCreate" para mostrar el teclado virtual

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

este código funciona bien en cualquier pantalla en cualquier momento, pero no funciona cuando se inicia la "primera" actividad. ¿Por qué?

Lo intenté cuando comencé otra actividad y funciona, pero no funciona cuando comienzo la "primera" actividad.

Traté de poner este código en los eventos "OnCreate" y muchos más ... pero parece que no funciona.

¿Hay alguna forma de "forzar" la visualización del teclado cuando comienzo la aplicación?

Gracias de antemano.

Respuesta

24

encontré la solución:

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

Gracias !!!

+0

Parece que funciona solo en el modo de retrato. Cuando cambio al modo horizontal, el teclado virtual se niega a encenderse. Lo intenté en ambos sentidos. Llame al modo paisaje antes de que se inicie la actividad y cambie a paisaje cuando se muestre la actividad. ¿Alguna pista sobre cómo proceder? –

+0

¡Genial! ¿Es un error de Android? Intenta ejecutar el teclado en onResume(), pero la primera vez no se inicia sin dicha demora – Sash0k

1

No se llamará a onCreate si la actividad se inicia primero desde el fondo. ¿Has intentado poner ese código en Reanudar?

onCreate se invoca solo cuando la actividad se inicia por primera vez o la actividad se cancela y el usuario navega a la actividad nuevamente. Entonces, si la actividad todavía está activa pero en segundo plano, no invocará Crear.

Por otro lado, se invocará onResume cada vez que la actividad pase a primer plano (visible en la pantalla) desde el fondo.

Aquí está el enlace al ciclo de vida de la actividad si está interesado http://developer.android.com/reference/android/app/Activity.html.

Espero que ayude.

Cuestiones relacionadas