PublishResult 内的 ConcurrentModificationException - ArrayAdapter

2024-07-01

我继承的一些源代码有时会在这一行抛出 ConcurrentModificationException:

for (String c : filteredList) {

body:

@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
    ArrayList<String> filteredList = (ArrayList<String>) results.values;
    if (results != null && results.count > 0) {
        clear();
        for (String c : filteredList) {
            add(c);
        }
        notifyDataSetChanged();
    }
}

我应该如何防止这个错误的发生?


并发修改异常:

通常不允许一个线程修改 Collection,而另一个线程正在迭代它......

修补程序解决方案将克隆ArrayList<String>,在迭代之前:

ArrayList<String> filteredList = (ArrayList<String>) results.values.clone();

您需要考虑到,如果列表很大,那么在此期间您将消耗两倍的 RAM。

顺便说一句,我会在映射/克隆列表之前首先运行验证,切换前两行,作为性能改进:

@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
    if (results != null && results.count > 0) {
        ArrayList<String> filteredList = (ArrayList<String>) results.values.clone();
        clear();
        for (String c : filteredList) {
            add(c);
        }
        notifyDataSetChanged();
    }
}

希望能帮助到你!干杯,

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

PublishResult 内的 ConcurrentModificationException - ArrayAdapter 的相关文章

  • ScrollView 隐藏底部线性布局

    我的 Android 应用程序中有以下 XML 布局 使用 ScrollView
  • 从 android 将用户注册到 QuickBlox 用户

    我正在尝试在我的 Android 应用程序中使用 QuickBlox 我阅读了指南并导入了示例 一切正常 我更改了一些用户可以使用 EditText 作为用户名和另一个密码登录的内容 并且效果很好 但现在我想添加一个注册按钮 使用户能够注册
  • 函数无法解析 Android NDK

    我正在尝试构建 NDK 项目 但遇到错误 这reverse在使用 JNI 和 NDK Android 的项目中无法解析该函数 您可以在附图中看到这一点 我已在路径和符号部分的项目属性中添加了路径 gt 也请参阅屏幕截图 None
  • INSTALL_FAILED_MISSING_SHARED_LIBRARY 没有 google api

    好吧 我一直在浏览 但我最终得到的只是谷歌的 api 我没有在我的应用程序中使用任何来自谷歌的API 我正在编写一个使用 sqlite 浏览器的应用程序 但尚未使用任何其他参考 任何想法 我之前没有开始过这个应用程序 所以现在这是一个非常大
  • 是否可以从 Linux CLI 编译适用于 Android 的 Xamarin?

    我们有一个 Android 应用程序 它根据每个客户端使用自定义信息进行编译 目前 我们的应用程序是使用 Ionic 构建的 因此当用户要求下载 APK 时 我们会自动相应地修改其源代码 编译应用程序并提供从客户端的下载 所有这一切都是在
  • 将 Android SDK 工具更新至修订版 14 后出现 Ant 问题

    安装 Android SDK 工具修订版 14 执行 ant version 时为 ant 版本 1 8 2 以在 Android 4 0 ICS 上安装和测试我们的应用程序后 我注意到我们的自动构建脚本现在失败了 构建脚本正在执行 ant
  • Android 定期运行任务

    我想在 android 活动中定期运行一个方法 该方法会在 x 秒后更新某个字段 我知道它可以在timerTask中完成 但是最好的方法是什么 代码示例会很有帮助 你应该使用Handler和它的postDelayed功能 您可以在这里找到示
  • 以编程方式创建 PDF 相册

    我有一组 PDF 相册模板 它们有空白方块 用于放置文本和照片 我的需要是使用这些模板来生成实际的专辑 我的计划是使用 iText 和 Java 我会向应用程序发送一个包含所有要使用的图像 URL 的数组 我将确切地知道图像应该放置在模板上
  • 具有圆角和透明背景的 Android 自定义警报对话框

    我创建了一个带有圆角的自定义 AlertDialog 使用onDraw of LinearLayout如下 public class RoundedLinearLayout extends LinearLayout private Pain
  • 当 error.networkResponse 为 null 时 Android Volley 中的 Http 状态代码

    我在 Android 平台上使用 Google Volley 我遇到的问题是error参数输入onErrorResponse返回 nullnetworkResponse对于我正在使用的 RESTful API 我需要确定通常以 401 SC
  • 每个项目有 2 个 TextView 的 Android ListView

    我在网上看到的所有示例每个项目仅包含 1 个 TextView 并且它们从数组加载数据 我不明白如何指定哪些数据去哪里 例如我的项目布局如下所示
  • 将片段添加到对话框

    我想向对话框添加一个片段 它可以是 DialogFragment 或常规对话框 我怎么做 这是我的 DialogFragment public class MyDialogFragment extends DialogFragment pu
  • 如何在没有丑陋的instanceof的情况下处理Retrofit Rx onError中的不同类型的错误

    我想知道您在改造 Rx onError 中处理不同类型的错误 如 http 异常 无互联网连接异常等 而不使用instanceof就像这里建议的那样 如何使用 RxJava 处理 Retrofit 2 中的网络错误 https stacko
  • RMI服务器异常

    当我尝试运行使用远程注册表的服务器时 我收到以下来自 RMI 的异常 我的 Server2 类中 main 方法的注册表代码是 Registry registry LocateRegistry getRegistry 192 168 1 4
  • Java 8 并行流和 ThreadLocal

    我试图弄清楚如何在 Java 8 并行流中复制 ThreadLocal 值 所以如果我们考虑一下 public class ThreadLocalTest public static void main String args Thread
  • CodenameOne 在构建后停止工作

    我对 codenameone 有一个奇怪的问题 我什至不确定出了什么问题 我尝试过 发送 Windows Phone 版本 并且从那时起我认为我没有更改任何其他内容 然而 在我这样做之后 模拟器无法启动并一直说我的导入是错误的 事实并非如此
  • 将 JTable 安装在面板中

    我正在使用 JTable 并将其添加到使用 gridbaglayout 的面板 如下所示 JTable qdbs new JTable rowData columnNamesVector qdbs setAutoResizeMode JTa
  • 数组的浅拷贝,为什么不能简单地做newArr = oldArr?

    假设我有一个整数数组 orig 我想浅复制它 所以我不能这样做 int shallow orig 我的教授说 对于原语 浅复制和深复制本质上是相同的 因为我们必须复制数组的每个索引 但是将整个数组设置为等于另一个数组会起到同样的作用 对吧
  • Android - 循环 strings.xml 文件

    我想知道是否有办法循环strings xml file 假设我有以下格式
  • Java:Set接口和Collection接口的区别

    我刚刚查了一下Set接口 发现它大部分 或完全 只重新声明已经存在于Collection界面 Set本身延伸Collection 所以这是否意味着Set界面自动具有所有功能Collection 那么为什么要重新声明它们呢 例如 Set重新声

随机推荐

  • std::transform 到任意容器

    我想编写接收的通用函数container1有价值观 a1 an 并返回另一个container2有价值观 convert a1 convert an If container2 is std vector 问题很简单 std transfo
  • Bootstrap 导航栏不会切换

    我对使用 Bootstrap 相当陌生 并且希望你们中的一位专业人士能够向我展示我在哪里犯了错误 我想要实现的目标 我正在使用 Bootstrap 开发一个响应式网站 我希望我的导航栏固定在顶部 并且当网页缩小到移动尺寸时 我希望我的导航栏
  • 从 NumPy 数组中随机选择单元格 - 无需替换

    我正在 NumPy 中编写一些建模例程 需要从 NumPy 数组中随机选择单元格并对它们进行一些处理 必须选择所有单元格而不进行替换 例如 一旦选择了单元格 就不能再次选择它 但最后必须选择所有单元格 我正在从 IDL 过渡 在那里我可以找
  • 由模块中定义的另一个方法覆盖方法

    我想定义一个实例方法Date next第二天返回 所以我做了一个DateExtension模块 像这样 module DateExtension def next symb day dt DateTime now day gt Date n
  • 使用 openssl 加密并使用 AES 128、ecb 模式在 iPhone 上解密

    Update 找到了解决方案 我将很快用实际的工作代码和命令更新这个问题 客户端正在使用 C 加密服务器端的文件 我需要在 iPhone 应用程序中对其进行解密 我的客户端可以在他这边加密和解密 我在iPhone上也可以加密和解密 但是我们
  • 如何将数据从 swift 传递到 javascript?

    我知道如何将数据从 javascript 传递到 swift 但不知道如何将数据从 swift 传递到 javascript 我用来将数据从 javascript 传递到 swift 的方法如下 h1 WebView Test 3 h1
  • dateutil.parser.parse() 在 Windows 平台上给出错误“initial_value 必须是 unicode 或 None,而不是 str”

    我确信有一个非常简单的解决方案 但我对 Python 还很陌生 我正在尝试使用 dateutil parser parse 来解析其中包含时间戳的字符串 gt gt gt import dateutil parser gt gt gt a
  • 在 Postgres 中的间隔中使用可变周期

    我有一个维护每月历史数据的关系 该数据在每月的最后一天添加到表中 然后可以调用我正在编写的服务 指定要检索历史数据的月份和之前的几个月 我通过创建 startDate 和 endDate 变量 然后返回两者之间的数据来完成此操作 我遇到的问
  • 如何删除github上贡献的仓库?

    我分叉了一个项目 拉了又推 我的github帐户显示此信息 有没有办法从我的个人资料中删除它 我已经从我的设置页面删除了存储库 正如我3年前所说 https stackoverflow com a 8057244 6309 您的公开活动是
  • 提高 PostgresQL 聚合查询性能

    我正在聚合 Postgres 表中的数据 查询大约需要 2 秒 我希望将其减少到不到一秒 请参阅下面的执行详细信息 Query select a search keyword hll cardinality hll union agg a
  • 点击 FCM 通知消息时如何获取消息正文?

    当应用程序在后台时 通知消息是通过Notification传递的 当点击通知时 应用程序启动 我如何获取消息正文 意图是这样的 Bundle google sent time 1470813025421 from 568540028909
  • 在Power BI中更改散点图的轴

    我需要更改增强型散点图原始代码中轴的类型 我需要一个日期列而不是日期计数 我正在尝试编辑可视化的原始代码 但我不知道如何正确地做到这一点 它尝试执行以下操作 我更改了以下行 xScale
  • GitHub Actions 中针对 Oauth 令牌的 Web 浏览器身份验证

    我正在尝试使用 GitHub Actions 通过 R 脚本使用 OAuth 2 0 令牌查询 GitHub API 当我运行代码时 它在我的本地计算机上运行良好 其中弹出一个浏览器窗口 指示 等待浏览器中的身份验证 我可以手动关闭该窗口
  • div 刷新,无需单击按钮

    如何使 div 刷新 例如 10 秒后 并执行 run query 函数而不单击按钮 div strong Quote of the Day strong div div a Next quote a div Use 设置时间间隔 http
  • NSPopover 未出现

    我真的希望我能更具体 但不幸的是 我不能 所有适当的对象都是非零的 并且所有适当的方法调用都 大概 成功完成 但是我的NSPopover只是永远不会出现 也没有调用任何委托方法 ivars NSPopover tagPopover NSVi
  • 绑定方法和不绑定方法的区别

    我现在已经参与了几个 React 项目 并且我注意到在一个项目中 每个新方法都没有绑定 实际差异是什么 如果有的话 如果你可以像第二个例子那样做 为什么还要绑定呢 在第一种情况下 代码如下所示 constructor props super
  • 数据注释“NotRequired”属性

    我有一个有点复杂的模型 我有我的UserViewModel它有几个属性 其中两个是HomePhone and WorkPhone 两种类型PhoneViewModel In PhoneViewModel I have CountryCode
  • 从栈(Frame)对象中获取函数对象

    我为模块编写了一个自定义日志记录类logging我叫的call 对于这个类 我希望将其放置在任何函数 方法中 并记录函数名称及其参数以及调用函数时使用的所有值 这对于类方法来说效果很好 Foo bar self a 1 b 2 c 3 ar
  • Qt5.4中如何获取网页的contentSize-QtWebEngine

    我正在使用新的 Qt5 4 和 QtWebEngine 模块 据我所知 mainFrame 不再存在 如何获取页面的 contentSize 大小以及如何渲染它 我尝试使用 setView 和 view 但不起作用 我找不到任何原生的 Qt
  • PublishResult 内的 ConcurrentModificationException - ArrayAdapter

    我继承的一些源代码有时会在这一行抛出 ConcurrentModificationException for String c filteredList body Override protected void publishResults