Ich habe versucht, in meiner Aktivität die Suchansicht aus dem Menü hinzuzufügen, kann aber keine Suchansicht in der Symbolleiste hinzufügen, wie ich die Suchansicht in meiner Aktivitätsleiste hinzufüge.Android SearchView in der Toolbar
10
A
Antwort
28
Ich habe mit Fragment auf diese Weise getan.
Ich habe mit onTextChangeListener von Suchansicht, überprüfen Sie einfach Ihre Logcat.
Screenshot Referenz:
menu.xml - (res
->menu
)
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".HomeActivity">
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always" />
</menu>
MainFragment.java
public class MainFragment extends Fragment {
private SearchView searchView = null;
private SearchView.OnQueryTextListener queryTextListener;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
if (searchItem != null) {
searchView = (SearchView) searchItem.getActionView();
}
if (searchView != null) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
Log.i("onQueryTextChange", newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
Log.i("onQueryTextSubmit", query);
return true;
}
};
searchView.setOnQueryTextListener(queryTextListener);
}
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_search:
// Not implemented here
return false;
default:
break;
}
searchView.setOnQueryTextListener(queryTextListener);
return super.onOptionsItemSelected(item);
}
}
Geschehen
3
menu_main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/search"
android:title="@string/search_title"
android:icon="@drawable/ic_search"
android:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="android.widget.SearchView" />
\ res \ xml \ searchable.xml:
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" />
AndroidManifest.xml:
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light">
<!-- Customize your theme here. -->
</style>
MainActivity.java:
package com.example.searchview;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.SearchView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, 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()));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
return super.onOptionsItemSelected(item);
}
}
Verwandte Themen
- 1. Android Toolbar SearchView öffnet automatisch Tastatur
- 2. Toolbar mit SearchView temporäre Filterung RecyclerView
- 3. SearchView im Toolbar-Hintergrund das gleiche wie Toolbar
- 4. Android - SearchView in der Symbolleiste nicht erweitert
- 5. App-Name in ToolBar ausblenden, wenn SearchView ihn überlappt
- 6. Ist es möglich, SearchView in AppCompat 21 mit Toolbar auszurichten?
- 7. Android SearchView Icon
- 8. Android SearchView Filter ListView
- 9. Android SearchView OnClickListener
- 10. SearchView Android wurde Suchanwendung?
- 11. Android SearchView leere Zeichenfolge
- 12. Benutzerdefinierte Suche searchView android
- 13. SearchView ist null android
- 14. Ändern von SearchView Farbe von zurück und löschen Sie Symbol in Android Toolbar
- 15. Suchansicht nicht in Toolbar
- 16. Android Actionbar SearchView
- 17. Android Notification Toolbar in der Statusleiste?
- 18. Android - Zentrum der Titel der Toolbar
- 19. Wie fügt man Schaltflächen zur Suchansicht in der Android Toolbar hinzu?
- 20. Android persistente Suchleiste in Toolbar
- 21. Android - Anzeige Dateipfad in Toolbar
- 22. Wie man Searchview im Layout in Android
- 23. Wie wird SearchView immer in Android erweitert?
- 24. Android SearchView AutocompleteTextView showdropdown BadTokenException
- 25. Android Toolbar Gestaltung
- 26. Android - Verhindern von Textverkürzung in SearchView-Vorschlägen?
- 27. Scrolling ToolBar Android
- 28. Android Toolbar Stil
- 29. Android Multiline Toolbar Titel
- 30. Auswahl aus der Vorschlagsliste in Android searchview anzeigen
Hey! Ich verwende Ihren Code, aber meine Suchschaltfläche expandiert nicht/zeigt das Suchtextfeld an, keine Idee? –
@LucaNicoletti, weil Sie vergessen haben, den Inflater in Ihrem 'OnCreateView()' hinzuzufügen, aktivieren Sie 'return inflater.inflate (R.layout.fragment_main, container, false);' –
Funktioniert nicht für mich! Die einzige Möglichkeit, dies in meinem Fall zu erreichen, war eine Schnittstelle: https://stackoverflow.com/a/37965747/1259763. –