我想在操作栏中创建一个始终扩展的搜索窗口。我正在使用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;
}
然而,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>
感谢您的帮助
答案 0 :(得分:12)
您的问题可能与您的XML有关。将android:actionViewClass="android.widget.SearchView"
更改为android:actionViewClass="com.actionbarsherlock.widget.SearchView"
答案 1 :(得分:0)
您确定使用的是正确的R.menu...
链接吗?另请尝试使用getMenuInflater();
代替getSupportMenuInflater();