ToolbarからSearchView ActionViewを取る方法
Toolbarを使っている場合であれば、onCreateOptionsなんちゃらでメニューを作る以外でもSearchView等のActionViewを取得できるっぽい
一部のみ抜粋
@Bind(R.id.toolbar)
Toolbar toolbar
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
toolbar.inflateMenu(R.menu.menu_toolbar);
MenuItem searchMenuItem = toolbar.getMenu().findItem(R.id.toolbar_menu_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
}
Toolbarのインスタンスを取得してinflateMenuでメニューリソースを参照。ちなみにそのリソースは以下
<?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/toolbar_menu_search"
android:icon="@drawable/ic_search_white"
android:title="@string/toolbar_menu_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always" />
</menu>
あとはgetMenu().findItemで取ってActionViewインスタンスを取る事が出来る模様