如何使用android注释实现SearchView(ActionBarSherlock)?

时间:2013-05-23 13:23:23

标签: android actionbarsherlock android-annotations

我使用操作栏sherlock成功实现了搜索视图,但仅仅是为了好奇,我该如何使用Android注释做到这一点?

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    SearchView searchView = new
            SearchView(getSupportActionBar().getThemedContext());
    searchView.setQueryHint(getString(R.string.hint_search_bar));
    menu.add("Search")
            .setIcon(R.drawable.icon_search)
            .setActionView(searchView)
            .setShowAsAction(
                    MenuItem.SHOW_AS_ACTION_IF_ROOM
                            | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

    return true;
}

我创建了一个xml菜单并使用

注释我的Activity
@OptionsMenu(R.menu.menu_search)

<item
    android:id="@+id/menuSearch"
    android:actionViewClass="SearchView"
    android:icon="@drawable/icon_search"
    android:showAsAction="ifRoom|collapseActionView"
    android:title="@string/lbl_search">
</item>

但搜索图标单击不会打开搜索文本字段。我认为问题在于这一行

SearchView searchView = new
            SearchView(getSupportActionBar().getThemedContext());

无法在xml中复制。我是对的吗?

1 个答案:

答案 0 :(得分:4)

当你在下面这样做时,我认为它应该有用。

<item
android:id="@+id/menuSearch"
android:actionViewClass="com.actionbarsherlock.widget.SearchView"
android:showAsAction="ifRoom|collapseActionView"
android:title="@string/lbl_search">
</item>