0

shreyaloclistfragment でリスト検索ビューを作成しようとしています。次の行で NullPointerException を取得しています

final SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();

私の方法は

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater ) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate( R.menu.menu_search, menu);
    System.out.println( "inflating menu");

    final SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();



    final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextChange(String newText) {
            showFilteredItems( newText );
            return true;
        }

        @Override
        public boolean onQueryTextSubmit(String query) {
            return true;
        }
    };

    searchView.setOnQueryTextListener(queryTextListener);

    return;
}

スタックトレース

FATAL EXCEPTION: main
java.lang.NullPointerException
at com.sears.syw.FragmentShopsTab.onCreateOptionsMenu(FragmentShopsTab.java:52)
at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:55)
at  


com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:559    )
at   

    com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSh    erlockNative.java:65)
at 
4

6 に答える 6

4

AppCompat ライブラリを使用している場合は、menu.xml に追加します。

app:actionViewClass="android.support.v7.widget.SearchView"

それ以外の

app:actionViewClass="android.widget.SearchView"
于 2014-09-29T12:02:22.607 に答える
0

メニュー xml からレイアウトを参照するには、actionLayout 属性を使用します。

<menu>
<item android:id="@+id/menu_name"
  android:actionLayout="@layout/your_layout"
  android:showAsAction="always"/>
</menu>
于 2013-07-27T21:14:23.697 に答える
0

時々問題があります

setHasOptionsMenu(true);

oncreate または onviewcreate から添付メソッドに移動して試してみてください。

于 2014-05-09T14:18:53.433 に答える