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

标签 android actionbarsherlock android-annotations

我成功地使用操作栏 sherlock 实现了搜索 View ,但出于好奇,我如何使用 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 中重现。我说得对吗?

最佳答案

当您执行以下操作时,我认为它应该有效。

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

关于android - 如何使用android注解实现SearchView(ActionBarSherlock)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16715106/

相关文章:

java - 使用 Android Annotation 处理 POST 请求

Androidannotations RestErrorHandler 未在 RestClient Robo Spice 请求中调用

android - GCM 网络管理器 - 定期任务未触发

Android gradle 测试框架 : single class

android - 将(打开/关闭)按钮添加到(打开/关闭)抽屉导航的 Activity

android - 为我的项目配置正确的 Android-API 级别

java - 创建菜单资源会抛出 IllegalStateException

android - 如何在 ActionBarSherlock 中更改大屏幕上的布局

android - 底部的 ActionBar Sherlock Tabs

android-annotations - 如何使用 AndroidAnnotations 取消 @Background 任务