Ten en cuenta que en las ciencias informáticas cualquier problema casi siempre tiene diferentes resoluciones, por lo tanto nosotros mostraremos lo más óptimo y eficiente.
Solución:
tienes que usar Appcompat
biblioteca para eso. Que se usa como a continuación:
tablero.xml
Archivo de actividad (en Java):
public boolean onCreateOptionsMenu(Menu menu)
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.dashboard, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) MainActivity.this.getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = null;
if (searchItem != null)
searchView = (SearchView) searchItem.getActionView();
if (searchView != null)
searchView.setSearchableInfo(searchManager.getSearchableInfo(MainActivity.this.getComponentName()));
return super.onCreateOptionsMenu(menu);
Archivo de actividad (en Kotlin):
override fun onCreateOptionsMenu(menu: Menu?): Boolean
menuInflater.inflate(R.menu.menu_search, menu)
val searchItem: MenuItem? = menu?.findItem(R.id.action_search)
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
val searchView: SearchView? = searchItem?.actionView as SearchView
searchView?.setSearchableInfo(searchManager.getSearchableInfo(componentName))
return super.onCreateOptionsMenu(menu)
archivo de manifiesto:
archivo xml de búsqueda:
Y por fin tu SearchResultsActivity
código de clase. para mostrar el resultado de su búsqueda.
Si desea configurar el servicio de búsqueda dentro de su Fragment
solo agregue estas pocas líneas:
Paso 1 – Agregar el campo de búsqueda a usted toolbar
:
Paso 2 – Agregue la lógica a su onCreateOptionsMenu()
import android.support.v7.widget.SearchView; // not the default !
@Override
public boolean onCreateOptionsMenu( Menu menu)
getMenuInflater().inflate( R.menu.main, menu);
MenuItem myActionMenuItem = menu.findItem( R.id.action_search);
searchView = (SearchView) myActionMenuItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
@Override
public boolean onQueryTextSubmit(String query)
// Toast like print
UserFeedback.show( "SearchOnQueryTextSubmit: " + query);
if( ! searchView.isIconified())
searchView.setIconified(true);
myActionMenuItem.collapseActionView();
return false;
@Override
public boolean onQueryTextChange(String s)
// UserFeedback.show( "SearchOnQueryTextChanged: " + s);
return false;
);
return true;
Si desea agregarlo directamente en la barra de herramientas.
¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)