El código en el que estoy trabajando está usando un Toolbar
e infla a menu
.
Aqui esta el codigo
private Toolbar mToolbar;
mToolbar.inflateMenu(R.menu.chat_screen_menu);
setupMenu ();
private void setupMenu ()
{
mMenu = mToolbar.getMenu();
if (mMenu != null)
{
if (mChatPager != null && mChatPager.getCurrentItem() > 0)
{
mMenu.setGroupVisible(R.id.menu_group_chats, true);
mMenu.setGroupVisible(R.id.menu_group_contacts, false);
}
else
{
mMenu.setGroupVisible(R.id.menu_group_chats, false);
mMenu.setGroupVisible(R.id.menu_group_contacts, true);
mMenu.setGroupVisible(R.id.menu_group_otr_verified,false);
mMenu.setGroupVisible(R.id.menu_group_otr_unverified,false);
mMenu.setGroupVisible(R.id.menu_group_otr_off,false);
}
}
mToolbar.setOnMenuItemClickListener(new OnMenuItemClickListener ()
{
..........
}
}
Pero ahora, requieren un Search
botón en el tool_bar
. Me las arreglé para ponerlo, seguí una guía aquí.
Cuando trato de escribir algo para buscar, el brindis que había puesto para probar lo listener
nunca mostrado. que indica que listener
no funciona
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.chat_screen_menu, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
mSearchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_menu_search));
final Toast toast = new Toast(mApp);
if (mSearchView != null )
{
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
mSearchView.setIconifiedByDefault(false);
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener()
{
public boolean onQueryTextChange(String newText)
{
mSearchString = newText;
//doFilterAsync(mSearchString);
toast.makeText(getApplicationContext(), "Test1", Toast.LENGTH_LONG).show();
return true;
}
public boolean onQueryTextSubmit(String query)
{
mSearchString = query;
//doFilterAsync(mSearchString);
toast.makeText(getApplicationContext(), "Test2", Toast.LENGTH_LONG).show();
return true;
}
};
mSearchView.setOnQueryTextListener(queryTextListener);
}
return true;
}
import android.support.v7.widget.SearchView
androidx.appcompat.widget.SearchView
Si desea configurar la función de búsqueda dentro de su
Fragment
, simplemente agregue estas pocas líneas:Paso 1 : agrega el campo de búsqueda
toolbar
:Paso 2 : agrega la lógica a tu
onCreateOptionsMenu()
fuente
R.menu.main
?Si desea agregarlo directamente en la barra de herramientas.
fuente
android.support.v7.widget.SearchView
en el XML.implementation 'com.android.support:design:$latest_version'
Integrando SearchView con RecyclerView
1) Agregar elemento de SearchView en el menú
SearchView
se puede agregar comoactionView
en el menú usando2) Implemente SearchView.OnQueryTextListener en su Actividad
SearchView.OnQueryTextListener
Tiene dos métodos abstractos. Por lo tanto, su esqueleto de actividad ahora se vería así después de implementar el escucha de texto SearchView.3) Configurar texto de pista de SerchView, oyente, etc.
4) Implemente SearchView.OnQueryTextListener
Así es como puede implementar métodos abstractos del oyente.
5) Escriba un método de filtro en su Adaptador RecyclerView.
Puede crear su propia lógica según sus requisitos. Aquí está el fragmento de código de muestra para mostrar la lista de Nombre que contiene el texto escrito en
SearchView
.Puede encontrar una muestra completa del código de trabajo> AQUÍ
También puede consultar el código en SearchView con una base de datos SQLite en esta aplicación de música
fuente
Implementar SearchView sin el uso del
menu.xml
archivo y abrir a través del botónEn su caso,
Activity
debemos utilizar elonCreateOptionsMenu
método en el que inflaremos mediante programaciónSearchView
Y en su clase de Actividad, puede abrir el
SearchView
botón de cualquier botón en la barra de herramientas como a continuaciónfuente