问题标签 [android-lazyadapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
46895 浏览

android - 在 Android 中的 Listview 上延迟加载图像(初级)?

可能重复:
Android - 如何在 ListView 中延迟加载图像

我正在使用自定义适配器处理列表视图。我想在上面加载图像和文本视图。图片是从互联网网址加载的。我只想向 hte 用户显示可见列表项的图像。我参考了romainguy 的 Shelves 开源项目示例,但是理解代码很复杂。对于初学者来说,我只想知道如何处理适配器和活动之间的标签。从commonsware 示例中,我可以在适配器上设置标签,但无法在列表视图的空闲状态下显示相应的图像。请帮我谈谈你的想法。示例代码更容易理解。

谢谢。

编辑:

ApiDemos中EfficientSlow Adapter的结合更有助于理解。

对高效适配器示例所做的更改如下:

它现在工作正常。但是当滚动状态时,它没有正确重新加载图像。一些项目间隔不显示图像2。这是加载图像的正确顺序。但并非在列表的所有项目中。实体项目间隔之间发生不匹配。如何纠正它?

0 投票
3 回答
6510 浏览

android - 如何清除Android中的缓存图像?

如何在Android中以编程方式从内存中清除缓存的图像?

ListView当我滚动它重新加载图像时,我有一个带有图标的图标。所以它产生 OutofMemoryError. 我想在收到此异常时清除缓存。怎么做?有什么帮助吗?

编辑:

我只是在我的程序上使用此代码来加载图像:http: //ballardhack.wordpress.com/2010/04/10/loading-images-over-http-on-a-separate-thread-on-android/

0 投票
1 回答
4276 浏览

android - 如何修复动态适配器包装器 Android 中的 notifyDataSetChanged/ListView 问题

摘要:尝试通过自定义适配器包装器将标题行动态添加到 ListView。ListView 无法保持滚动位置同步。提供可运行的演示项目。

我想根据 CursorAdapter 中的值将项目动态添加到列表中,在用户当前查看的内容之前几个位置。为此,我有一个适配器,它包装 CursorAdapter 并将新内容索引在 SparseArray 中。将项目添加到自定义适配器时需要更新 ListView,但我遇到了很多试图让它工作的陷阱,并且希望得到一些建议。

演示项目可以在这里下载:DynamicSectionedList.zip

在演示中,通过向前看 10 个位置来动态添加标题,以找到列表项切换到下一个字母的正确位置。notifyDataSetChanged 的​​每个实现都存在如下问题:

Demo 1 这个Demo展示了notifyDataSetChanged()的重要性。单击任何内容时,应用程序都会崩溃。这是由于 ListView 中的一些健全性检查mItemCount != adapter.getItemCount()...。道德是,我们需要通知列表数据已更改。

Demo 2 下一步自然是在发生更改时通知 ListView 更改。不幸的是,在 ListView 滚动时这样做会破坏所有触摸交互,直到应用程序退出触摸模式。您需要“滚动”足够远以生成新标题才能注意到这一点。点击屏幕不会导致滚动停止,一旦停止,列表项将不可点击。这是由于if (!mDataChanged) { /* do very important stuff */ }AbsListView.onTouchEvent() 中的一些代码造成的。

Demo 3 为了解决这个问题,Demo 3 引入了一个 pendingChanges 标志,并且自定义 Adapter 获得了一个 notifyDataSetChangedIfNeeded(),一旦 ListView 进入“安全”状态以进行更改,就可以调用它。必须通知更改的第一点是在 ListView.layoutChildren() 中,因此我重写了该方法,以便在需要时首先通知更改,然后调用。跳过至少一个标题,然后单击一个列表项。

尽管我不完全确定为什么,但这并不完全正确。使用键盘/轨迹球点击或选择一个项目会导致列表刷新,而不会正确同步旧位置。它滚动到列表的顶部,这是不可接受的。

Demo 4 Demo 3 中的滚动问题是可以解决的,至少在触摸模式下是可以的。通过在触摸时添加对 notifyDataSetChangedIfNeeded() 的调用,数据更改恰好发生在所有触摸交互按预期工作并且列表位置正确同步的时间。

但是,当设备不处于触摸模式时,我找不到类似的东西,更不用说它绝对看起来像是一个黑客。该列表几乎总是滚动回顶部,我无法找出导致它偶尔保持正确位置的原因。

由于 Android 在每一步都在与我作斗争,我觉得应该有更好的方法。请尝试演示,如果可以应用任何修复以使其正常工作,那就太好了!

非常感谢任何可以对此进行研究的人,希望如果我们可以使代码正常工作,它将对其他尝试对带有标题的列表进行相同优化的人有用。

0 投票
1 回答
9005 浏览

android - 将位图图像放入列表视图的图像视图中

我想将位图图像放入 ListView 的 ImageView 中。我将图像从 url 更改为位图图像。我有 10 张图像,我必须将图像放在 ListView 的每个项目中。除了懒惰的适配器,还有什么方法吗??提前致谢!!!

这是我的代码

0 投票
3 回答
482 浏览

android - 在 ListView 中显示数据和图像

我正在开发一个应用程序。我在 ListView 中显示缩略图和相应的数据与图像数据和图像都通过 XML 解析下载和解析为了显示图像我使用了本教程

ListView 中图像的延迟加载

但我不知道如何在 ListView 中显示解析的数据。

谢谢

阿布舍克

0 投票
1 回答
888 浏览

android - android notifyDataSetChanged() 删除列表中的原始数据

当用户滚动到列表底部时,我正在尝试将项目添加到适配器。我能够做到这一点,但是我想将新项目添加到适配器并保留已经存在的项目,但现在原始项目已被删除,只有新项目可见。关于如何实现这一目标的任何想法?

这就是我的代码在 atm 的样子:

只是为了澄清我在做什么;一旦列表的底部可见,我就会启动一个获取更多视频的 AsyncTask。在异步任务中,我将适配器设置为异步任务完成后触发的事件的侦听器 - 这有效。

onTaskFinished() 上面的最后一个方法 - 这里我将新项目添加到 4 个列表中,适配器使用这些列表来填写每个列表项,最后我通知适配器。

所以新项目都添加得很好,问题是在添加新项目之前的项目,由于某种原因被删除,或者不再可见。

忘了补充一下,我已经验证列表的长度确实增加了,这意味着它确实包含原始数据和新添加的数据

有任何想法吗?

[编辑] 添加我将适配器设置到列表视图的代码

0 投票
1 回答
443 浏览

android - Android:总是强制关闭

我正在使用基于此链接上的@fedor 帖子的列表视图和惰性适配器构建应用程序

这是我的第一个活动:

}

这是我的懒惰适配器类:

在我运行我的代码之后,这里是 logcat:

我的程序总是强制关闭...也许有人可以帮助我...

0 投票
1 回答
773 浏览

android - LazyAdapter 上的 TextView 显示错误数据

我已经成功地基于此链接使用带有 LazyAdapter 的 ListView 构建了一个应用程序

但我的列表视图中有异常。每个列表视图有 1 个图像视图和 2 个文本视图。所以惰性适配器将向imageview显示“缩略图”,向Textview1显示“名称”,向Textview2显示“地址”......

ImageView 是正确的……它可以显示数据库中的图像缩略图……但这里的问题是,BOTH TEXTVIEW 没有显示正确的数据!而是显示数据库中的“名称”和“地址”......它们显示缩略图图像的链接。

所以,也许任何人都可以帮助我。谢谢b4。

这是我的 json :

这是我的主要活动:

这是我的 LaxyAdapter 类:

0 投票
2 回答
1422 浏览

android - 使用 LazyAdapter 和 getAdapter() 检索值时遇到问题

我正在使用 LazyAdapter 来显示列表视图,并且我想在单击项目时将值传递给另一个活动。但是我无法检索该值。请帮帮我。MainActivity.java

LazyAdapter.java

日志猫

0 投票
1 回答
1631 浏览

android - 在android中的单行上具有多个图像和文本的Listview?

嗨,我要制作一个待办事项列表,所以我需要的是分配我的任务并将其作为列表视图在这些列表视图中查看需要 3 个文本视图,这 3 个图像中的 3 个图像代表 3 个活动,如警报、日历依此类推,当我单击这些图像时,它会单独打开我尝试了惰性适配器,但它用于解析阶段我的应用程序中没有解析请帮助我