如何在没有singleTop的情况下使用Android SearchView?

2023-11-21

我有一个 Activity,通常希望存在于多个任务中,以便 [后退] 按钮恢复之前的状态;不过,我也想用一个搜索视图与现有的活动,而不将新的活动推入任务堆栈(因为我想搜索当前显示的内容)。这是我的问题:

  • 如果我将 Activity 的启动模式设置为“singleTop”,SearchView 将与当前 Activity 一起使用,但是Context.startActivity不向堆栈添加新活动。
  • 如果我将活动的启动模式设置为“标准”,启动活动将新活动添加到堆栈中,但 SearchView 还会创建一个新(空)活动,而不是搜索现有活动。

我找不到任何方法让 SearchView 使用意图标志(例如FLAG_ACTIVITY_SINGLE_TOP。我尝试采取相反的方式,将启动模式设置为“singleTop”,然后添加FLAG_ACTIVITY_NEW_TASK符合每一个意图,但这仅在从不同的活动类别启动时才有效;当我尝试从自己的类启动活动的新实例时,Android 不尊重 FLAG_ACTIVITY_NEW_TASK 并且没有将新任务推送到堆栈上。

也许我可以做点什么Activity.onNewIntent然后强制活动克隆自身。

我正处于放弃 SearchView 并只是编写自己的自定义小部件的边缘,尽管事实是“从 Android 3.0 开始,使用 SearchView 小部件作为操作栏中的项目是在应用程序中提供搜索的首选方式” (Source)——到目前为止,它似乎太不灵活且不可配置,无法在重要的情况下使用。

有没有人找到解决这个问题的方法?


经过大量的反思和错误的开始,我意识到 SearchView 根本不适合这项任务。 Google 在设计 SearchView 时考虑到了一种非常具体的搜索活动类型:

  • 用户输入搜索查询。
  • 该应用程序推送一个显示结果列表的新活动。

这不是我使用的搜索模型;相反,我想使用查询来优化当前显示在屏幕上的列表 - 它更像是过滤搜索,而不是同步查询和响应模型。 SearchView 不是为此设计的,因此我继续编写自己的小部件(并将其绑定到搜索菜单项和搜索按钮)。

我很惊讶没有人对这个问题发表任何评论——通常 Android 问题会引起很多讨论。我想这实在是太遥远了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有singleTop的情况下使用Android SearchView? 的相关文章

  • android edittext中的字符映射

    我想让我的编辑文本就像我写字符 g 时一样 它是相关的映射自定义字符应该写成印地语中的 我认为应该有字符映射 但没有知识任何人都可以帮助我 怎么做 其他应用程序https play google com store apps details
  • 我在布局上看不到任何 FirebaseRecyclerAdapter 项目

    我试图将数据从 Firebase 数据库检索到我的布局 但我看不到任何项目FirebaseRecyclerAdapter在布局中 请帮忙 我按照一个教程展示了如何做到这一点 当我运行应用程序时 我没有看到任何项目 但我可以滚动 public
  • 如何使用 Google Maps for Android V2 处理地图移动结束?

    我想在地图中心更改后立即对地址进行地理编码 如何使用新的 Android 版 Google 地图 V2 处理地图移动 我说的是用户用手指拖动地图的情况 查看新的地图 API Override public void onMapReady G
  • Bitmap.getPixels() 中的 IllegalArgumentException

    我想将数据从位图复制到int using getPixels 这是我当前的代码 int pixels new int myBitmap getHeight myBitmap getWidth myBitmap getPixels pixel
  • 如何更改终端的默认目录?

    我想更改 Android Studio v2 2 2 终端的默认目录 当我打开终端时 它基于项目的目录 C 项目路径 我经常需要使用adb shell 所以我必须导航到 SDK 路径 平台工具 才能使用 adb 命令 是否可以更改终端的默认
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • 当它的父级是 ConstraintLayout 时设计 CardView 吗?

    我在编辑包含Relativelayout的Cardview内的RelativeLayout时搞砸了 ConstraintLayout会将相对布局的wrap content更改为0并添加工具 layout editor absoluteX 1
  • Android Eclipse 上的 Web 服务

    我是 android eclipse java 的新手 事实上这个论坛也是如此 有人遇到过这种情况吗 从用户那里获取输入并通过使用 android eclipse 中的 Web 服务来显示适当的结果 有可用的示例吗 非常感谢 我正在发布教程
  • Android 构建发布失败,原因为:java.lang.ArrayIndexOutOfBoundsException:213(pr​​oguard 问题)

    我的项目使用调试构建变体构建得很好 但使用发布变体 Android Studio 会抛出 引起原因 java lang ArrayIndexOutOfBoundsException 213 可能是什么问题 如果我设置minifyEnable
  • Android 中如何通过彩信发送图片?

    我正在开发多媒体应用程序 我正在通过相机捕获一张图像 并希望将该图像和文本发送到其他号码 但我不知道如何通过彩信发送图像 MMS 只是一个 http post 请求 您应该使用执行请求额外的网络功能 final ConnectivityMa
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • 上网本上可以进行Android开发吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想使用我的上网本进行 Android 开发 但是当我尝试使用 Eclipse 运行 SDK 时 没有加载任何内容 上网本对于 Android 开发来
  • 问题:为什么React Native Video不能全屏播放视频?

    我正在react native 0 57 7 中为android和ios创建一个应用程序并使用反应本机视频 https github com react native community react native video播放上传到的视频
  • 通过电子邮件发送文本文件附件

    我正在尝试附加一个文本文件以便通过电子邮件发送 但每当我打开电子邮件应用程序时 它都会说该文件不存在 请帮助 Intent i new Intent Intent ACTION SEND i setType text plain i put
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所

随机推荐

  • 使用文本溢出:省略号;仅当达到 div 中的 3 行时[重复]

    这个问题在这里已经有答案了 这是我的 css 片段 test width 150px height 60px white space nowrap overflow hidden text overflow ellipsis o text
  • bouncycastle 连接到 android studio

    一天中的好时光 我需要以某种方式将 bouncycastle 库连接到 android studio 如何才能做到这一点 我以前从未处理过 这是我需要这个库的代码 Security addProvider new org bouncycas
  • 从 ArrayAdapter 获取FragmentManager

    我有一个由自定义 ArrayAdapter 填充的 listView 每个视图中都有一个按钮 我想在单击按钮时更改当前片段 这是我的代码 public class CheckInSArrayAdapter extends ArrayAdap
  • 求列表中向量的平均值

    我有一个 Vector3 列表 每个都有 x y z 值 List
  • 为什么两个不同对象上的哈希函数返回相同的值?

    我使用Spyder 运行Python 2 7 刚刚发现有趣的事情 hash 1 和hash 2 都返回 2 有问题吗 我认为不同对象上的哈希函数应该返回不同的值 我读过以前的文章 说 1 在 Python 中被保留为错误 hash s 返回
  • C# 支持返回类型协方差吗?

    我正在使用 NET 框架 我真的希望能够制作我的所有网站都使用的自定义类型的页面 当我尝试从控件访问页面时 问题就出现了 我希望能够返回特定类型的页面而不是默认页面 有什么办法可以做到这一点吗 public class MyPage Pag
  • 如何使用 PHP 在 heroku 上发送电子邮件?

    我已经创建了 PHP 应用程序并使用 heroku 进行了部署 在应用程序中 我有联系表格可以将邮件发送到我的 Gmail 帐户 为了实现这一点 我编写了以下 PHP 代码
  • 3 下拉菜单根据另一个[级联下拉菜单]中的选择进行填充

    我是 Java 脚本新手 这里我有 2 个下拉菜单的工作示例Fiddle HTML
  • 在 Yii gridview 分页中保留复选框值

    我有一个 gridview 其中包含一个复选框列 并且还使用分页 当我选中第一页中的某些复选框并导航到第二页并选中第二页中的另一个复选框时 我在第一页中选中的选项不会保留在那里 分页期间是否可以保留复选框值 Gridview 的代码是 wi
  • 在 ASP.NET 中使用 Ext JS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我没有 JavaScrip
  • 使用 Python 将国际字符替换为基本拉丁字符的好方法是什么?

    说我有绳子 bl t tr b t 其中有几个a and o上面有变音符号和圆环 我希望它成为 blot trabat 尽可能简单 我做了一些挖掘并发现了以下方法 import unicodedata unicode string unic
  • React propType 无法读取未定义的属性

    使用 propTypes 验证 props 会出现以下错误 类型错误 无法读取未定义的属性 字符串 类型错误 无法读取未定义的属性 func 有问题的代码位于代码片段的底部 import React from react import Pr
  • 如何将 Google 地图地点库的自动填充功能限制为仅建议一个城市的地点?

    我目前正在使用给定的代码 但这仅将建议限制在一个国家 地区 我见过一种实现 但它使用 jQuery 我想在不使用 jQuery 的情况下实现它 var input document getElementById searchTextFiel
  • 如何在不在 @INC 的目录中“使用”Perl 模块?

    我的脚本的父目录中有一个模块 我想 使用 它 If I do use Foo pm 我收到语法错误 我尝试这样做 push INC use EPMS 并且 显然没有出现在 INC中 我要疯了 这是怎么回事 use发生在编译时 所以这可以工作
  • 单个 Django 模型,多个表?

    我知道以前曾问过这个完全相同的问题 但我希望得到一个 更好 的答案 不涉及在运行时修改类属性 这是问题 单个 Django 模型 多个表 我有同样的问题 我正在寻找类似于响应者的第一个回复的解决方案 但这实际上有效 如果没有更好的解决方案
  • 如何在服务器端安排PHP脚本的执行?

    我需要一个在特定时间自动执行的 PHP 脚本 我将如何实现这个目标 如果您运行的是 Linux Unix 包括 Mac OSX 创建一个 cron 作业 如果您运行的是 Windows 创建计划任务 Note 上述两个链接都专门针对 PHP
  • std::sort 类中的比较函数无法编译

    我正在编写一个程序来获得凸包 我需要按极角对点进行排序 我选择了base之前指出 所以我编写了一个成员比较函数 请注意 对于每个对象base点不同 但是当我将它应用到std sort 程序无法编译 这是我的程序 class ConvexHu
  • 翻译自定义 jQuery 验证消息

    我有一个关于 jQuery 验证的问题要问plugin 我已使用本地化来更改以西班牙语显示的错误消息的默认语言 但我找不到有关要翻译的自定义消息的任何内容 有什么线索吗 例如 我已经包含了西班牙语的翻译文件 这是我的代码 signup fo
  • 如何在Python中将for循环转换为并行处理?

    我仍处于学习 Python 的早期阶段 如果这个问题听起来很愚蠢 请提前道歉 我有这组数据 以表格格式 我想向其中添加一些计算列 基本上我有一些位置经度 纬度和目的地经度 纬度 以及各自的数据时间 并且我正在计算每对之间的平均速度 示例数据
  • 如何在没有singleTop的情况下使用Android SearchView?

    我有一个 Activity 通常希望存在于多个任务中 以便 后退 按钮恢复之前的状态 不过 我也想用一个搜索视图与现有的活动 而不将新的活动推入任务堆栈 因为我想搜索当前显示的内容 这是我的问题 如果我将 Activity 的启动模式设置为