java - 用户单击放大镜菜单项之前的 SearchView.setQuery()

标签 java android searchview android-menu

我的菜单中有一个 SearchView 项目:

<item
    android:id="@+id/search_toolbar_main"
    android:icon="@drawable/ic_search_black_24dp"
    app:showAsAction="always|collapseActionView"
    app:actionViewClass="androidx.appcompat.widget.SearchView"
    android:title="Search" />

现在我想以编程方式打开 searchview 并使用 searchView.setQuery() 设置文本。但是,如果我在用户单击放大镜菜单项之前执行 searchView.setQuery() ,则不会发生任何事情。

最佳答案

您可以调用expandActionView()方法来聚焦它

@Override
public boolean onCreateOptionsMenu( Menu menu )
{
    super.onCreateOptionsMenu( menu );

    MenuItem searchMenuItem = menu.findItem( R.id.search_toolbar_main ); 
    searchMenuItem.expandActionView(); // Expand the search menu item in order to show by default the query

    return true;
}

关于java - 用户单击放大镜菜单项之前的 SearchView.setQuery(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54904583/

相关文章:

java - Windows 8 64 位机器安装 Karma 集成工具时出现的问题

java - 如何在 finish() 中开始一个 Activity

android - 如何在单击 "Search"菜单时更改操作栏背景?

android - fragment 中 RecyclerView 上的 SearchView

java - android 复选框在 setchecked 复选框为 false 时获取 java.lang.nullpointerException

java - 在 XML 的 onClick 事件中,我们给出一个方法名称,该文档必须位于哪个 java 文件中?

android - WorkManager 上的一次性作业未在某些设备上运行

xml - 无法解析类 SearchView

java - 在 Android 中将 AlertDialog Builder 限制为最多两行

Android 13 以编程方式唤醒屏幕