gpt4 book ai didi

android - CommonsGuy EndlessAdapter 中的 java.lang.IllegalStateException

转载 作者:行者123 更新时间:2023-11-29 02:00:08 25 4
gpt4 key购买 nike

我正在整合 commonsguy / cwac-endless我的一个应用程序中使用了 EndlessAdapter,它工作得非常好!感谢 CommonsWare 爵士 :)

但是我得到了 java.lang.IllegalStateException: The content of the adapter has changed but ListView did not received a notification

注意: 此异常仅在我使用 endlessAdapter.setRunInBackground(false); 时发生,基本上是在我想要自己实现 AsyncTask< 时 缓存数据(在 EndlessAdapter 类的 cacheInBackground() 方法中执行 AsyncTask)。

重新创建此 IllegalStateException 的步骤:

第 1 步)运行 EndlessAdapterCustomTaskFragment example作为 EndlessAdapter

的演示提供

第 2 步) 向下滚动 ListView,以便进度 View 可见。

第 3 步) 单击进度 View 。现在,一旦在加载数据时单击进度 View ,应用程序将因 java.lang.IllegalStateException 强制关闭。

为了克服这个问题,我重写了 EndlessAdapter 类的以下方法,它确实有效;)

    @Override
public boolean areAllItemsEnabled() {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
return getItem(position) != null;
}

我非常想知道以下内容:

1) 为什么 EndlessAdapter 实现仅在我希望我自己的 AsyncTask 实现缓存数据时抛出异常,即 endlessAdapter.setRunInBackground(false); 但是当使用 endlessAdapter.setRunInBackground(true); 时没有 AsyncTask

的自定义实现

2) 点击ListView item 和ListViewgetCount() 方法有一定的关系,只有点击ListView 的progress 才会产生Exception指标项。

提前致谢:)

最佳答案

感谢您为此问题提供可重现的测试用例。我对 EndlessAdapter 进行了两项更改以尝试解决该问题,包括合并您概述的 areAllItemsEnabled()/isEnabled() 修复的变体多于。这已提交并标记为 v1.2。如果以及当您移动到库的 v1.2 时,您将需要删除自己对 areAllItemsEnabled()isEnabled() 的覆盖。

Why EndlessAdapter implementation throws exception only when I want my own implementation of AsyncTask to cache data i.e endlessAdapter.setRunInBackground(false); BUT NOT when using endlessAdapter.setRunInBackground(true); with no custom implementation of AsyncTask

异常是通过 onException() 提供给您的,您可以覆盖它。这是为了确保您在主应用程序线程上获得异常,即使异常可能是在由 EndlessAdapter 管理的后台线程中引起的。

There is some relation between clicking ListView item and getCount() method of ListView because it generates Exception only when clicking ListView's progress indicator item.

这是在 ListView 的实现中。

关于android - CommonsGuy EndlessAdapter 中的 java.lang.IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com