如何从片段中的工具栏在列表视图中搜索

2023-12-09

我使用此代码从 ListView 中的 MainActivity 工具栏进行搜索:

    SearchView searchView;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate( R.menu.main, menu);

    MenuItem myActionMenuItem = menu.findItem( R.id.action_search);
    searchView = (SearchView) myActionMenuItem.getActionView();
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }
        @Override
        public boolean onQueryTextChange(String s) {
            adapter.getFilter().filter(s);
            return false;
        }
    });
    return true;

}

但是现在我将列表视图移动到片段中,如何将适配器从片段传递到主活动?如何更新打字? 除了通过适配器还有什么更好的方法吗? 先感谢您


可以使用更好的方法EventBus。在这样的场景中,它确实很有帮助,在这种场景中,我们必须将某些数据从 Activity 传递到 Fragment。

为了使用EventBus,您需要定义一个POJO类,有点像这样:

class SearchQueryEvent {
    String query;

    public SearchQueryEvent(String query) {
        this.query=query;
    }

    public String getQuery() {
        return query;
    }
}

现在,您的代码应该修改如下:

MainActivity.java

SearchView searchView;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate( R.menu.main, menu);

    MenuItem myActionMenuItem = menu.findItem( R.id.action_search);
    searchView = (SearchView) myActionMenuItem.getActionView();
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }
        @Override
        public boolean onQueryTextChange(String s) {
            EventBus.getDefault().post(new SearchQueryEvent(s));
            return false;
        }
    });
    return true;

}

YourFragment.java

@Override
public void onResume() {
    super.onResume();
    EventBus.getDefault().register(this);
}

@Override
public void onPause() {
    EventBus.getDefault().unregister(this);
    super.onPause();
}

@Subscribe(threadMode = ThreadMode.MAIN)
public void onSearchQuery(SearchQueryEvent event) {
    String query=event.getQuery();
    adapter.getFilter().filter(query);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从片段中的工具栏在列表视图中搜索 的相关文章

  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • WorkManager 或 AlarmManager 用于日常请求然后通知工作?

    这是用例 用户设置具有特定时间的每日通知 在指定时间 发出网络请求以获取一些数据 然后使用检索到的数据显示通知 我不确定是否应该使用 AlarmManager 还是 WorkManager 来实现这个用例 据我了解 AlarmManager
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 如何在 Android 中从 WorkManager 取消工作?

    我已经保存了 WorkManagerUUID转换成String在领域数据库中 这是代码 Constraints constraints new Constraints Builder setRequiredNetworkType Netwo
  • Dagger 2 没有生成我的组件类

    我正在使用 Dagger 2 创建我的依赖注入 几个小时前它还在工作 但现在不再生成组件 这是我创建组件的地方 public class App extends Application CacheComponent mCacheCompon
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一

随机推荐

  • SQL SERVER选择行[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如果我有下面这个表 id time start 08 00 AM stop 09 00
  • WAMP 服务器不显示图像

    我遇到了一个问题 我不知道在谷歌中搜索什么 基本上我已经安装了WAMP服务器并安装了OPen Cart 我可以在本地计算机上查看我的电子商务网站 但当我在远程计算机上打开它时 它不会加载任何图像 它只显示文本 我的场景 如果我加载 PHP
  • 如何在清单文件中指定依赖项,然后将其包含到我的 .jar 文件中?

    我通过以下命令生成了 class 文件 javac cp directoryName external jar myPackageDirectory First java myPackageDirectory Second java 我需要
  • 具有许多键的二维字典将返回相同的值

    我想制作一个每个值有多个键的二维字典 我不想让元组成为键 而是创建许多将返回相同值的键 我知道如何使用 defaultdict 制作二维字典 from collections import defaultdict a dict defaul
  • 在 Cypher 查询中结束 UNWIND 语句

    如果我有一个展开参数的密码查询 则该查询部分之后的所有内容都称为展开的 x 次 我想找到一种方法来结束这种放松并继续做其他事情 MATCH thing Thing UNWIND names AS name CREATE thing HAS
  • JAXB 封送由 XmlAdapter 创建的 ArrayList

    我想调整一个的 XML 表示HashMap现场使用XmlAdapter 我用一个ArrayList要做到这一点 然而 在编组时ArrayList根本没有编组 这是为什么 The code XmlRootElement public clas
  • 重命名和移动文件 Powershell

    我想将 rpt 文件从 dr network 重命名为 dr network 10yr 然后创建文件夹 Output 如果不存在 并将文件移动到该文件夹 文件重命名有效 但无法移动文件 请注意 文件应该是相对路径 谢谢您的帮助 New It
  • Struts 2 标签的评估似乎不一致

    我对一些与 OGNL 混合的 Struts2 标签有疑问 为了克服不能在 OGNL 中嵌套表达式求值的事实 例如 foo bar 我使用对变量的连续赋值来获得我需要的结果 在下面的代码中 vargrpIndex评估正确 例如 6 or 7
  • 如何将 SearchBox 集成到 Google Maps JavaScript API v3 中?

    我想创建一个顶部带有搜索框的谷歌地图 如下所示 https google developers appspot com 使用 JavaScript API v3 目前 我使用以下代码通过获取 url 中的纬度和经度 php get 来显示地
  • 在Linux服务器上运行用java编写的计划任务

    我需要每天在特定时间在Linux服务器上运行一段java代码 目前 我正在 Ubuntu 桌面上通过从终端运行它来测试它 并根据需要正常运行 为了安排时间 我使用了来自here 在实际服务器上 将其作为进程运行的正确方法是什么 我的意思是
  • Android 加速度计检测高度?

    是否可以使用加速度计来检测高度 例如 如果我手上拿着手机 然后抬起手臂后检测高度 Thanks 假设您的意思是您想要检测手机从起始点抬起的高度 是的 Android 加速度计测量力 有关如何使用它的更多信息可以找到here 请记住 加速度计
  • 使用 PowerShell 和 OData API 将文件上传到 SharePoint 2010

    我正在尝试将文件上传到 SharePoint 2010 Function Add Attachments CmdletBinding Param Parameter Mandatory True int Id Parameter Manda
  • 在java脚本和CSS中构建带有圆角和阴影的半圆形进度条

    我搜索了很多 但一无所获 我想制作一个进度条圆角 进度条需要有shadow 我现在所做的一切都在这里 progress bar each function var bar this find bar var val this find sp
  • 用于解析单个句子的正则表达式是什么?

    我正在寻找一个好的 NET 正则表达式 可以使用它从文本正文中解析出各个句子 它应该能够将以下文本块解析为正好六个句子 Hello world How are you I am fine This is a difficult senten
  • 如何获得 xPy 的所有排列?

    我想计算一组大小 X 的大小 Y 的所有排列 也就是说 如果我有 1 2 3 并且想要大小 2 3P2 的所有排列 那么它将是 1 2 1 3 2 1 2 3 3 1 3 2 GSL和C STL都只提供我能看到的xPx 有人能给我指出一个可
  • Eclipse:Android 依赖项

    我已将项目中的 Google AdMob 从 6 2 1 更新到 6 4 1 但不知何故 eclipse 失败 你可以在这里看到它 这是错误消息所需库的存档 项目 中的 C Users libs GoogleAdMobAdsSdk 6 2
  • 递归评估 JSON 对象

    我们正在使用 JSON 库https github com octomix josson 我的示例 JSON 对象 data A 1688 B 1363 C calc A B A data A B data B D calc B C B d
  • C# 将 delphi TColor 转换为颜色(十六进制)

    这些数字存储在数据库中 它们源自 Delphi 代码 尽管我认为他们遵循某种标准 我努力了Color FromArgb 255 但我知道第一个是红色 在 delphi 方面 而在 ASP NET 中它认为它是蓝色的Color A 0 R 0
  • VB 中的 shell 命令

    由于某种原因 当我尝试在 VB 的 shell 命令中使用 符号时 它们似乎没有像应有的那样工作 当我尝试使用与符号在同一行上将两个命令链接在一起时 我收到错误 filenotfoundexception 未找到未处理的文件 我尝试运行的命
  • 如何从片段中的工具栏在列表视图中搜索

    我使用此代码从 ListView 中的 MainActivity 工具栏进行搜索 SearchView searchView Override public boolean onCreateOptionsMenu Menu menu get