如何将搜索对话框添加到 Android 应用

How to add Search Dialog to an Android app

这是我的问题。我需要将 搜索对话框 添加到 Android 应用程序。我找到了添加搜索视图组件的方法,但没有找到搜索对话框。我从 Android 开发人员文档中知道我应该使用 onSearchRequested() 来让它出现,但我不太明白那是什么意思。搜索对话框是否应该绑定到我自己的将调用此方法的 UI 组件,或者我是否遗漏了什么?我还没有读完所有关于搜索的文档,但我希望有人能指出我错过了什么重要的地方。

我对Android开发不是很了解,只会做几个小项目。在创建移动应用程序时,我更像是一名 Flutter 开发人员,但这次我没有这个选择。

下面是 Android 开发人员文档显示为搜索对话框的屏幕截图以及与搜索视图的比较。

基于documentation,调用Search Dialog的步骤是:

  1. 创建一个 Xml 文件(您已经为 search widget 做了)

  2. 声明一个可搜索的 activity:创建一个活动并通知 Manifest 它获得了搜索结果(你也这样做了)

3.Manifest 处贴标一些其他的 activity(例如 MainActivity)以便能够调用搜索对话。在 <activity> 标签内添加此行:

<meta-data android:name="android.app.default_searchable"
            android:value=".SearchableActivity" />

android:value 是获取搜索结果的 Activity 的名称,您在第 2 步中定义了它)

4. 在那 Activity,创建一个搜索按钮等并像这样调用 Serach Dialog

onSearchRequested();

其实很简单:)

存储在intent.getStringExtra(SearchManager.QUERY)中的搜索词作为字符串,您在SearchableActivityclass的onCreate()处获取。从这一点开始,您应该处理搜索查询和结果逻辑...