3

アクションバーに常に拡張された検索ウィンドウを作成したいと思います。ActionBarSherlockライブラリを使用しています。私が見つけたいくつかのサンプルによると、このコードはトリックを行う必要があります

    public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = this.getSupportMenuInflater();
    inflater.inflate(R.menu.action_bar, menu);

    MenuItem searchItem = menu.findItem(R.id.action_bar_search);
    SearchView searchView = (SearchView) searchItem.getActionView();  //returns null
    searchView.setIconifiedByDefault(false);


    return true;
}

ただし、getActionView(); nullを返します。setIconifiedByDefault(false);を呼び出すことができるように、searchViewにアクセスする他の方法はありますか。方法 ?次のように、xmlファイルにsearchViewの定義を保持したいと思います。

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@+id/action_bar_search"
          android:title="@string/action_bar_search"
          android:icon="@drawable/ic_magnify"
          android:showAsAction="always"
          android:actionViewClass="android.widget.SearchView" />
    </menu>

助けてくれてありがとう

4

2 に答える 2

12

あなたの問題はおそらくあなたのXMLにあります。android:actionViewClass="android.widget.SearchView"に変更android:actionViewClass="com.actionbarsherlock.widget.SearchView"

于 2012-10-11T10:38:10.707 に答える
0

R.menu...正しいリンクを使用していますか? また、getMenuInflater();代わりに使用してみてくださいgetSupportMenuInflater();

于 2012-10-03T14:21:02.703 に答える