Home Menu

Menu



Avisos

Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 14/06/14, 23:22:07
Avatar de Guixe94
Guixe94 Guixe94 no está en línea
Desarrollador
Mensajes: 900
 
Fecha de registro: abr 2012
Localización: Barcelona, Catalunya
Mensajes: 900
Modelo de smartphone: HTC ONE y Galaxy Note 3
Versión de ROM: Ultima Orange Stock
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Problema con Search Widget

Hola, siento ser tan pesado por que llevo ya unos 3 temas creo en 3 dias..
Mi problema de hoy es con el widget para buscar.
Estoy siguiendo el siguiente tutorial: (solo el apartado "Adding Search Widget to action bar"
http://www.androidhive.info/2013/11/...th-action-bar

Y tengo un problema cuando modifico el onCreateOptionsMenu() y introduzco el siguiente codigo:

Código:
// Associate searchable configuration with the SearchView
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.action_search)
                .getActionView();
        searchView.setSearchableInfo(searchManager
                .getSearchableInfo(getComponentName()));
 
        return super.onCreateOptionsMenu(menu);
Cuando lo quito todo funciona ok lo unico que al pulsar el boton de buscar pues esta claro que no aparece nada.. pero cuando lo pongo me sale que la app dejo de funcionar.
En el log me sale la siguiente frase:

Código:
06-14 17:09:43.538    1717-1717/com.barwill94.wikicraft E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.barwill94.wikicraft, PID: 1717
    java.lang.NullPointerException
            at com.barwill94.wikicraft.Crafteo.onCreateOptionsMenu(Crafteo.java:70)
Que hace referencia a estas lineas del codigo:
Código:
 searchView.setSearchableInfo(searchManager
                .getSearchableInfo(getComponentName()));
He leido que ese error se lanza cuando alguna variable esta llegando con valor null. Pero no se como solucionarlo..

En el menu he añadido el codigo bien y he declarado que era el widget de busqueda. He creado tambien la actividad "SearchResultsActivity". He modificado el AndroidManifest.xml

He de decir que mi sdk minima era la 8, pero entonces el widget de busqueda nno funcionaba asi que la he cambiado en el build.gradle a la 11 (en el AndroidManifest también aunque ya no se use) y la he instalado en el SDK manager, no se si tengo que hacer algo mas para cambiar el sdk minimo o ya esta asi bien?
Utilizo Android Studio

Gracias por la ayudado que me habéis ido dando todos!

Saludos

Última edición por Guixe94 Día 14/06/14 a las 23:24:48
Responder Con Cita


  #2  
Viejo 15/06/14, 17:10:13
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
¿Estás usando un Theme que lleve ActionBar? Si venías de API 8 lo dudo, salvo que también lo hayas modificado o estuvieses usando el Support V7, donde se introduce la ActionBarCompat para API 7.

Si el Theme no es ActionBar no te va a funcionar ese código, y si estabas usando ActionBarCompat entonces debes usar el SearchView incluido en el Support V7 también, y no el que está en android.widget
Responder Con Cita
  #3  
Viejo 15/06/14, 17:11:55
Avatar de Guixe94
Guixe94 Guixe94 no está en línea
Desarrollador
Mensajes: 900
 
Fecha de registro: abr 2012
Localización: Barcelona, Catalunya
Mensajes: 900
Modelo de smartphone: HTC ONE y Galaxy Note 3
Versión de ROM: Ultima Orange Stock
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
¿Estás usando un Theme que lleve ActionBar? Si venías de API 8 lo dudo, salvo que también lo hayas modificado o estuvieses usando el Support V7, donde se introduce la ActionBarCompat para API 7.

Si el Theme no es ActionBar no te va a funcionar ese código, y si estabas usando ActionBarCompat entonces debes usar el SearchView incluido en el Support V7 también, y no el que está en android.widget
estaba usando el que viene por defecto.. como puedo cambiar el theme? si pongo el holo dark o light serviran?

gracias!
Responder Con Cita
  #4  
Viejo 15/06/14, 17:19:11
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Si compilas para API 11 puedes usar Theme.Holo o Theme.Holo.Light, también puedes usar Theme.Holo.Light.DarkActionBar para que el tema sea blanco pero la barra negra.

Si quieres hacerla compatible con API 8 tendrá que usar el paquete de compatibilidad v7 y donde pone Theme.Holo en su lugar poner Theme.AppCompat.

EDITO: Ahmm, se me olvidaba, si usas el paquete de compatibilidad la Activity debe ser ActionBarActivity, si compilas para API 11 con que sea Activity es suficiente (el ActionBarActivity sólo existe en el paquete de soporte v7)
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 15/06/14, 17:39:46
Avatar de hoheiky
hoheiky hoheiky no está en línea
Usuario poco activo
Mensajes: 26
 
Fecha de registro: ene 2014
Localización: Siberia
Mensajes: 26
Modelo de smartphone: ZTE Axon 7
Versión de ROM: Stock Rom
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Hola.

Yo tengo una búsqueda prácticamente igual a la tuya pero usando Fragments, y uso:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

super.onCreateOptionsMenu(menu, inflater);

SearchManager searchManager = (SearchManager) getActivity().getSystemService( Context.SEARCH_SERVICE );
searchView = (SearchView) menu.findItem(R.id.menu_item_search).getActionView ();
searchView.setSearchableInfo(searchManager.getSear chableInfo(getActivity().getComponentName()));
searchView.setQueryHint(getString(R.string.action_ search));
searchView.setOnQueryTextListener(this);
}

Me tiene pasado que si no llamo al super() antes de nada, el método falla. Prueba, tardas un minuto, y no vaya ser una chorrada así.

Saludos.
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 15/06/14, 21:42:41
Avatar de Guixe94
Guixe94 Guixe94 no está en línea
Desarrollador
Mensajes: 900
 
Fecha de registro: abr 2012
Localización: Barcelona, Catalunya
Mensajes: 900
Modelo de smartphone: HTC ONE y Galaxy Note 3
Versión de ROM: Ultima Orange Stock
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Si compilas para API 11 puedes usar Theme.Holo o Theme.Holo.Light, también puedes usar Theme.Holo.Light.DarkActionBar para que el tema sea blanco pero la barra negra.

Si quieres hacerla compatible con API 8 tendrá que usar el paquete de compatibilidad v7 y donde pone Theme.Holo en su lugar poner Theme.AppCompat.

EDITO: Ahmm, se me olvidaba, si usas el paquete de compatibilidad la Activity debe ser ActionBarActivity, si compilas para API 11 con que sea Activity es suficiente (el ActionBarActivity sólo existe en el paquete de soporte v7)
Muchas gracias ya he cambiado el thema a Holo y ahora si que funciona!
Lo que al buscar en la pantalla me sale "Search Query: XXX"
peor no me salen los resultados de la busqueda..

Que tengo que añadir exactamente para que pueda buscar en una activity??

Muchas Gracias otra vez!
Responder Con Cita
  #7  
Viejo 21/07/14, 14:04:22
Avatar de hoheiky
hoheiky hoheiky no está en línea
Usuario poco activo
Mensajes: 26
 
Fecha de registro: ene 2014
Localización: Siberia
Mensajes: 26
Modelo de smartphone: ZTE Axon 7
Versión de ROM: Stock Rom
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Hola.

Yo para implementar la búsqueda en mis ListView seguí estos manuales:

http://developer.android.com/training/search/setup.html

http://developer.android.com/guide/t...ch-dialog.html

http://www.androidbegin.com/tutorial...ew-in-android

Espero que te sirvan de ayuda, como lo fueron para mi.

Saludos.
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 22/07/14, 00:38:33
Avatar de Guixe94
Guixe94 Guixe94 no está en línea
Desarrollador
Mensajes: 900
 
Fecha de registro: abr 2012
Localización: Barcelona, Catalunya
Mensajes: 900
Modelo de smartphone: HTC ONE y Galaxy Note 3
Versión de ROM: Ultima Orange Stock
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Voy a mirarlo. Muchas gracias!
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 21:16:28 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007