Zunächst einmal, ich danke Ihnen allen für Ihre (zukünftigen) Antworten :)Gibt es eine Möglichkeit, SearchView in Fragment zu verwenden?
Unten Erklärung meines Problems:
ich meine Hauptaktivität haben MainActivity genannt und ich verwende ein Fragment in seinem Inneren. Also, mein Fragment enthält eine SearchView und eine ListView, die Vorschläge in Abhängigkeit von der Eingabe des Benutzers enthält ... Bitte beachten Sie, dass ich es nicht in der ActionBar, sondern in meiner Layout-Datei ...
Hier ist fragment_board_menu. xml, log xML-Datei auf meinem Fragment BoardMenuFragment:
<android.support.v7.widget.SearchView
android:id="@+id/board_searchView"
android:layout_marginLeft="3dp"
android:layout_marginStart="3dp"
android:background="@color/green"
app:searchIcon="@drawable/ic_search"
app:searchHintIcon="@drawable/ic_search"
app:closeIcon="@drawable/ic_close"
app:defaultQueryHint="@string/create_newboard_hint"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ListView
android:layout_below="@+id/board_searchView"
android:background="@drawable/listview_border"
android:layout_marginBottom="@dimen/listview_border_marginBottom"
android:layout_marginLeft="3dp"
android:layout_marginStart="3dp"
android:id="@+id/board_listView"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
Er ist BoardMenuFragment.java, Datei mein Fragment java:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_board_menu, container, false);
setupSearchView(view);
// LISTVIEW
// TODO This view is an example, don't forget to delete it
values = new ArrayList<>();
values.add("pomme");
values.add("poire");
values.add("banane");
values.add("cerise");
values.add("citron");
adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_expandable_list_item_1, android.R.id.text1, values);
board_listView.setAdapter(adapter);
return view;
}
private void setupSearchView(View view) {
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView) view.findViewById(R.id.searchView);
SearchableInfo searchableInfo = searchManager.getSearchableInfo(getActivity().getComponentName());
searchView.setSearchableInfo(searchableInfo);
}
Aber ich habe eine Ausnahme, die ist:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.SearchView.setSearchableInfo(android.app.SearchableInfo)' on a null object reference
Also meine Frage ist: ist es möglich, Suche in Fragment zu verwendenmit Search und SearchableInfo, weil ich es setOnQueryTextListener mit zu tun versucht, und es funktioniert, aber ich denke nicht, dass das der beste Weg ist, es zu tun, weil ich eine Menge Tutorials sah, wo Sie eine DurchsuchbareAktivität erstellen ...