2

エラーは次のとおりです。

java.lang.NullPointerException.onCreateOptionsMenu(AddMyMarketsActivity.java:44)

私のコードは次のとおりです。

41 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
42          SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
43          SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();       
44          searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
            Log.i("searchView", "set searchable configuration for searchView ");

私のコードの問題は何ですか?

4

3 に答える 3

6

Android サポート ライブラリを使用してアクション バーを表示している場合は、必ず SearchView 宣言で正しい actionViewClass を使用してください。

する必要がありますapp:actionViewClass="android.support.v7.widget.SearchView"

その後、ActionView を取得しようとするコードの代わりとして使用できます。

MenuItem searchItem = menu.findItem(R.id.search_view);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

これを呼び出す前に、必ず getMenuInfalter().inflate(...) を呼び出してください。

詳細: http://developer.android.com/guide/topics/ui/actionbar.html#ActionView

于 2013-12-14T22:01:20.650 に答える
3

私は同じエラーがあり、変更することで削除されました:

android:actionViewClass="android.widget.SearchView"

app:actionViewClass="android.widget.SearchView"

menu.xml ファイルから

つまり、android: を app: に変更します。

于 2015-07-08T11:04:30.673 に答える