Ich versuche also, eine Suche über die App-Leiste durchzuführen und die Abfrage an ein Attribut zu übergeben, das ich "searchRequest" anrufe. Ich möchte das Ergebnis anzeigen.Wie führe ich eine Suche über die App-Leiste durch?
Ich habe this guide in the documentation verfolgt und versucht, aber dann habe ich vergebens.
Wie ich auskommentiert habe, ist meine temporäre Lösung, meinen Loader aufzurufen und das "searchRequest" ein Klassenattribut zu machen. Dies scheint jedoch mehrere Probleme zu verursachen, wie das Ergebnis, das auf dem Bildschirm verbleibt, obwohl die Zurück-Taste gedrückt wird.
Ich habe versucht, die onOptionsMenuClosed()
Methode überschreiben, eine setOnCloseListener()
auf meine searchView setzen.
Ich vermute, dass ich dies in einer dedizierten SearchActivity tun sollte.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
this.searchRequest = query;
/*LoaderManager loaderManager = getLoaderManager();
loaderManager.initLoader(BOOK_LOADER_ID, null,MainActivity.this);*/
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
}
Prüfung dieses Tutorial http://instinctcoder.com/android-studio-sqlite-search-searchview-actionbar/ – RameshJaga