まず、あなたの(将来の)回答ありがとうございました:)FragmentでSearchViewを使用する方法はありますか?
私の問題の説明以下:
私はMainActivityという名前の私のメインの活動を持っていると私はそれの内部でフラグメントを使用しています。私のフラグメントにはSearchViewとListViewがあり、ユーザーの入力に応じた提案が含まれています...私はActionBarではなく私のレイアウトファイルで使用しています...
ここはfragment_board_menuです。 XML、xmlファイルには、私の断片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">
彼はBoardMenuFragment.javaで、私のフラグメントの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);
}
しかし、私はある例外があります。
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.SearchView.setSearchableInfo(android.app.SearchableInfo)' on a null object reference
だから私の質問です:私はsetOnQueryTextListenerを使用して、それを実行しようとしましたので、それが可能SearchManagerとSearchableInfoをを使用してでフラグメントをSearchViewを使用することですそれが動作しますが、私はSearchableActivityを作成するチュートリアルの多くを見たので、それを行うための最善の方法だとは思わない...