2010-01-01 17 views
8

Tengo un ListView y es posible utilizar el teclado de hardware para filtrar elementos. Sin embargo, ¿qué debo hacer para los teléfonos que no tienen un teclado de hardware y solo uno virtual? ¿Hay alguna manera de agregar un botón que cuando se presiona, aparece el teclado virtual?Botón para mostrar el teclado virtual?

Respuesta

28

Pude alternar el teclado en pantalla usando el siguiente código. Espero que esto sea útil para alguien.

InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputMgr.toggleSoftInput(0, 0); 
+0

Gracias porque Mark funcionó bien ..... – praveenb

+0

Bien hecho, está perfectamente bien – Sandy

+0

Solo consigo el teclado, y nada más, ningún campo de escritura de texto. ??? – marjanbaz

3

Una sugerencia podría ser simplemente usar un cuadro de entrada de texto (EditText). De esta forma, un usuario puede, en teoría, escribir más de un carácter para restringir la búsqueda (y ver lo que han escrito). Para mostrar el teclado en pantalla, todo lo que necesitan hacer es tocar en el cuadro de texto. Si esa casilla se llamaba "Buscar" o algo similar, creo que sería más intuitivo para un usuario que un botón.

+0

Gracias esto me apuntó en la dirección correcta – Tyler

2

Hay una convención (para los que tal vez alguien más puede proporcionar una referencia — no pude encontrar nada rápidamente) que mantiene presionado el botón de hardwaremenú abre el teclado en pantalla.

Aunque esto es aparentemente dependiente del dispositivo. Sé que funciona en el G1, pero en mi HTC Hero no funciona en la pantalla de inicio (aunque HTC parece haber estropeado algunos accesos directos, como mantener presionado el botón Home).

De todos modos, sé que otras aplicaciones como ConnectBot mencionan y emplean esta convención para abrir el teclado virtual.

+2

La pulsación larga en el menú solo tenía la intención de ser una compatibilidad de último recurso para aplicaciones que en ese momento no sabían acerca de los teclados suaves. Las solicitudes escritas hoy no deben basarse en eso. Debido a que es un modo de compatibilidad, coloca el teclado en un estado diferente al que espera el problema; por ejemplo, el usuario debe descartarlo explícitamente en lugar de seguir las reglas normales de descarte automático mientras navega a través de la IU. – hackbod

+0

Gracias por la aclaración (¡de un Android no menos!;)). Entonces, ¿cuál sería la solución de IU recomendada para la pregunta original? ¿Se mencionó un cuadro de texto de búsqueda/filtro explícito como bdls? –

+0

Agregar un cuadro Editar texto parece funcionar. Encontré una pregunta en http://stackoverflow.com/questions/1737009/answer-to-making-a-nice-looking-listview-filter-on-android (la primera respuesta) que da un buen tutorial que estoy siguiendo . – Tyler

0

Mantener presionado el botón de menú parece que ya no funciona en Android 4.0 (IceCreamSandwich). Esto rompe las listas filtrables en muchas aplicaciones en las que el usuario ya no tiene forma de filtrar la lista y necesita mirar a través de listas largas y largas.

Cuestiones relacionadas