在ActionBar中访问actionView

Dav*_*ler 3 android actionbarsherlock android-actionbar

我想在操作栏中创建一个始终扩展的搜索窗口.我正在使用ActionBar Sherlock库.根据我发现的一些示例,这段代码应该可以解决问题

    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;
}
Run Code Online (Sandbox Code Playgroud)

但是,getActionView(); 返回null.是否有其他方法可以访问searchView,以便我可以调用setIconifiedByDefault(false); 方法 ?我想在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>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Gli*_*tch 12

您的问题可能与您的XML有关.更改android:actionViewClass="android.widget.SearchView"android:actionViewClass="com.actionbarsherlock.widget.SearchView"