Der Code, an dem ich arbeite, verwendet a Toolbar
und bläst a auf menu
.
Hier ist der Code
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 ()
{
..........
}
}
Aber jetzt benötigen sie einen Search
Knopf in der tool_bar
. Ich habe es geschafft, ich habe hier eine Anleitung befolgt.
Wenn ich versuche, etwas zu schreiben, um zu suchen, den Toast, den ich zum Testen des listener
nie gezeigten gesetzt hatte. was anzeigt listener
, funktioniert nicht
@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
Wenn Sie die Suchfunktion in Ihrem einrichten möchten
Fragment
, fügen Sie einfach die folgenden Zeilen hinzu:Schritt 1 - Fügen Sie das Suchfeld hinzu
toolbar
:Schritt 2 - Fügen Sie die Logik zu Ihrem hinzu
onCreateOptionsMenu()
quelle
R.menu.main
?Wenn Sie es direkt in der Symbolleiste hinzufügen möchten.
quelle
android.support.v7.widget.SearchView
in XML zu deklarieren .implementation 'com.android.support:design:$latest_version'
Integration von SearchView in RecyclerView
1) Fügen Sie das SearchView-Element im Menü hinzu
SearchView
kann wieactionView
im Menü mit hinzugefügt werden2) Implementieren Sie SearchView.OnQueryTextListener in Ihrer Aktivität
SearchView.OnQueryTextListener
hat zwei abstrakte Methoden. Nach der Implementierung des SearchView-Textlisteners würde Ihr Aktivitätsskelett nun so aussehen.3) Richten Sie SerchView Hint-Text, Listener usw. Ein
4) Implementieren Sie SearchView.OnQueryTextListener
So können Sie abstrakte Methoden des Listeners implementieren.
5) Schreiben Sie eine Filtermethode in Ihren RecyclerView-Adapter.
Sie können Ihre eigene Logik basierend auf Ihren Anforderungen entwickeln. Hier ist das Beispielcode-Snippet, um die Liste der Namen anzuzeigen, die den in das Feld eingegebenen Text enthält
SearchView
.Ein vollständiges Beispiel für einen funktionierenden Code finden Sie> HIER.
Sie können den Code in SearchView auch mit einer SQLite-Datenbank in dieser Musik-App überprüfen
quelle
Implementieren der SearchView ohne Verwendung der
menu.xml
Datei und Öffnen durch SchaltflächeIn Ihrem
Activity
Fall müssen wir die Methode deronCreateOptionsMenu
Methode verwenden, mit der wir die programmgesteuert aufblasenSearchView
Und in Ihrer Aktivitätsklasse können Sie die
SearchView
Schaltfläche auf eine beliebige Schaltfläche wie unten klickenquelle