正如标题所说,我无法弄明白。我没有使用compat支持库。使用android:Theme.Holo.Light.DarkActionBar
这是我的action_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_search"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|collapseActionView"
android:title="@string/action_search"/>
</menu>
这是我的活动:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_menu, menu);
mi = menu.findItem(R.id.action_search);
search = (SearchView)mi.getActionView();
search.setOnQueryTextListener(getOnQueryTextListener());
new SearchTask().execute(getIntent().getStringExtra("query"));
return true;
}
mi
是一个MenuItem。 search
是一个SearchView。
如果action_menu.xml中的项的声明顺序是写的,则getActionView返回null。
如果订单被颠倒,它就有效。为什么呢?
答案 0 :(得分:0)
尝试这样,
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_settings"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_search"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_action_search"
app:showAsAction="ifRoom|collapseActionView"
android:title="@string/action_search"/>
</menu>
希望它会帮助你