2011-09-01 12 views
9

Necesito ayuda para averiguar cómo verificar si un dispositivo está equipado con el botón de búsqueda de hardware o no. es posible?Compruebe si el dispositivo Android tiene botón de búsqueda de hardware

EDITAR: Estoy hablando de averiguar si el dispositivo tiene el botón de búsqueda de hardware o no. Pregunta simple. Cada dispositivo Android tiene un conjunto de botones de hardware; menú, botón de inicio, botón Atrás y botón de búsqueda. Pero algunos dispositivos solo están equipados con algunos de ellos, no con todos.

EDIT 2: La razón por la que pregunto es porque quiero que se muestre un botón de software en mi UI si el dispositivo no está equipado con un botón de hardware. Estoy usando la interfaz searchable en mi actividad. No estoy siguiendo el enfoque EditText/TextField.

+0

si no me estoy equivocando, ¿me contó sobre el botón de hardware de búsqueda de dispositivo o sobre algún botón de vista gráfica? – user370305

+0

Pensé que era un requisito para los dispositivos Android. – rds

+0

No todos los dispositivos están equipados con botones de hardware. El nuevo Galaxy Tab 10.1 no tiene ninguno de esos botones que mencioné antes. – ScratchMyTail

Respuesta

-2

Mucho mejor que puede hacer usign dos maneras

  1. poner el botón de búsqueda y llamar a onSearchRequested();

  2. La segunda manera de hacer clic en el EDITTEXT puso android:imeOptions="actionSearch" Así que hay que
    cheque por clave

    searchBox.setOnEditorActionListener(new OnEditorActionListener() 
    { 
        public boolean onEditorAction(TextView textView, int id,KeyEvent event) 
        { 
        if (id == EditorInfo.IME_ACTION_SEARCH) 
         { 
          //do what ever you want 
         } 
        return true; 
        } 
    }); 
    

Espero que esto te ayude.

+1

. No estoy preguntando cómo activar el campo de búsqueda. Pregunto cómo podemos averiguar si un dispositivo está equipado con una búsqueda de hardware o no. La idea es simple Si el dispositivo NO tiene un botón de búsqueda de hardware, debo mostrar un botón de software. Si tiene un botón de hardware, no mostraré el botón de software. Ese es mi plan. – ScratchMyTail

+1

He votado la respuesta porque no justifica la pregunta y la solución requerida –

1

No creo que deba detectar si realmente tiene un botón de búsqueda de hardware. El marco te ayudará aquí (aunque estoy seguro de que este proceso se simplificará una vez que se libere Ice Cream Sandwich)

Actualmente, los únicos dispositivos que no tendrán hardware son tabletas Honeycomb. Así, mediante el uso de android:targetSdkVersion="11" (o superior), añadiendo a su implements OnQueryTextListenerFragment o Activity, y luego añadir algo como:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.notebooks_menu, menu); 
    final SearchView sv = new SearchView(getActivity()); 
    sv.setOnQueryTextListener(this); 
    menu.findItem(R.id.search_notebooks).setActionView(sv); 
} 

básicamente van a resolver el problema. Ahora, para que funcione en los dispositivos pre-Honeycomb, es posible que deba usar el compatibility library, o use el reflejo o algunas otras protecciones en su código.

EDITAR

El Samsung Galaxy S II no tiene un botón de búsqueda de hardware dedicado, pero si mantiene pulsado el botón de menú por un par de segundos, se empieza a actuar como un botón de búsqueda de hardware.

+0

Tiene razón, las tabletas Honeycomb no tienen el botón Buscar hardware. Tampoco lo hace el nuevo Samsung Galaxy SII. Creo que es triste ver a las empresas hacer su propio giro en sus dispositivos. Hace que sea aún más desafiante apoyar todos los dispositivos Android. El Galaxy 10.1 incluso tiene un botón de captura de pantalla dedicado que me parece extraño. La mejor solución probablemente sea implementar un menú que contenga el botón de búsqueda como mencionó, esto funcionará en todos los dispositivos, al menos en aquellos equipados con el botón de menú (que creo que tienen todos los dispositivos Android). Gracias por la entrada. – ScratchMyTail

+1

Consulte mi edición sobre el botón de menú del SGS2 que se está convirtiendo en búsqueda. Estoy de acuerdo en que no es * excelente * (pero no se les puede culpar por tratar de innovar) cuando los fabricantes de hardware obtienen cosas como esta, ya que rompe las expectativas de los usuarios y desarrolladores por lo menos. –

+0

Gracias Jon. Por cierto, creo que la biblioteca de soporte no viene con SearchView. Por lo tanto, debemos usar el diálogo de búsqueda predeterminado en SDK anteriores. Aquí está [documentación] (http://developer.android.com/training/search/backward-compat.html). –

Cuestiones relacionadas