java - Android SearchView 使用 FloatingActionButton

标签 java android

我正在尝试在 Android 应用程序中实现搜索,但不幸的是,我找不到在没有 MenuItem 的情况下实现 SearchView 的方法。就像在 onCreateOptionsMenu() 中所做的一样:

SearchManager searchManager =
                (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView addView =
                (SearchView) menu.findItem(R.id.action_add).getActionView();
addView.setSearchableInfo(
                searchManager.getSearchableInfo(getComponentName()));

我想使用 FloatingActionButton 实现 SearchView,但不幸的是转换不起作用,尽管上面的 getActionView() 也返回一个 View 。我这样试过:

SearchView searchView = (SearchView) floatingActionButton;

但遗憾的是我得到了:

java.lang.ClassCastException: android.support.design.widget.FloatingActionButton cannot be cast to android.widget.SearchView

这是我的菜单声明:

<item
        android:id="@+id/action_add"
        android:icon="@drawable/ic_add"
        android:title="Add"
        app:showAsAction="collapseActionView|always"
        android:actionViewClass="android.widget.SearchView"
        app:actionViewClass="android.support.v7.widget.SearchView"
        />

这是我的 list 声明:

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar"
        >
            <meta-data android:name="android.app.default_searchable"
                android:value=".SearchResultsActivity" />


        </activity>
        <activity
            android:name=".SearchResultsActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme"
            android:launchMode="singleTop">

            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
        </activity>

如何让 FloatingActionButton 触发 android 工具栏中的搜索小部件? 感谢您的帮助。

最佳答案

尝试使用 MenuItemCompat.expandActionView(yourSearchMenuItem); 据我所知,这也适用于 API < 14。

关于java - Android SearchView 使用 FloatingActionButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35464114/

相关文章:

java - 以编程方式与 Java 中的 I/O 程序交互

java - 如何将我的函数之一转换为 Iterable<T> 函数?

android - 选择器 react 缓慢 - 有时在开始下一个 Activity 之前根本不触发

java - 将 Java 8 与 android api 22 结合使用

android - 如何在 android firebase 中保持登录状态和注销状态?

java - 获取 SQLServerException 的数据访问对象类

java - if-elseif-else 类似于 Java 8 流的功能

java - 如何使用自定义定界符/分隔符运行参数化 jUnit 测试

java - 字母代码在java/android中首先执行

android - ConstraintLayout 中的 RecyclerView 显示不正确