问题标签 [android-viewholder]

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 投票
3 回答
51 浏览

java - 为 MainActivity 制作一个 ListView 持有者

我让我的列表视图在 MainActivity 上显示它,并且布局设置为具有新 Person 对象的 3 个 TextView 属性。

我之前的代码可以运行,但是滚动很慢,所以我研究了使用 Holder 模式进行优化。但是,当尝试实现这一点时,我正在NullPointerException上线TextView personID=(TextView) view.findViewById(R.id.person_field1)

listView 设置为 MainActivity 上的 ListView,我需要在 MainActivity 中的此视图上显示人员对象。

MainActivity 类:

0 投票
2 回答
566 浏览

android - 在 ListView 中使用 fastScrollEnabled 时不平滑滚动

我在我的应用程序中使用列表视图。我制作了一个自定义适配器并使用了 viewholder 设计模式。问题是当我通过平滑滑动它的滚动来滚动列表视图但是当我通过拖动快速滚动拇指滚动它时它滞后太多。它经常冻结一段时间。我已经检查了手机中的其他应用程序,例如默认音乐播放器,无论我如何滚动,列表视图都像风一样滚动。我没有在列表中使用任何图像视图,每行只使用三个文本视图。

这是完整的代码:

和列表视图 xml:

并称它为:

0 投票
1 回答
798 浏览

android - 在查看器的按钮单击上替换片段

我想在查看器中单击按钮时替换片段。

观众

包含 listview 的 FragmentA 的适配器类

片段A

替换片段时给出空指针异常

日志猫

0 投票
4 回答
870 浏览

android - 即使使用视图持有者,视图也会被回收

所以我创建了一个自定义列表视图,其中一个项目使用此布局:

这个listview的自定义适配器如下:

当我单击一个列表项时,它的背景变为蓝色,但是当我向下滚动列表视图时,我看到其他列表项也变为蓝色背景。我正在使用视图持有者模式,但为什么它不起作用?为什么还在重复?我错过了什么?

提前致谢。

更新:我能够稍微更正我的代码,但问题仍然存在。虽然现在当我从顶部选择一些列表项时视图没有回收,但是当我向下滚动然后回来时,我没有看到选择了任何额外的视图,而是取消选择了选定的视图。另一方面,当我从列表视图的底部选择一些列表项并向上滚动时,我看到它们正在回收。我不知道为什么会这样。请帮忙。

这是我更新的代码:

0 投票
0 回答
427 浏览

android - 滚动时列出适配器取消选中我的切换按钮。从这里尝试了多种解决方案,但没有运气

我的适配器(其风格一直适用于我的应用程序的其余部分)现在给我带来了问题。这是第一个具有可切换按钮的列表。每个 listItem 都有一个 toggleButton,当我切换、向下滚动然后返回时,它会自动变为未选中状态。在过去的两天里,我一直在尝试与 SO 不同的解决方案,从禁用回收到添加视图持有者,但都没有成功。

我知道代码可能看起来有点乱,但希望它仍然可以理解。变量已更改,我很确定我得到了每个实例,但我主要需要逻辑/语法方面的帮助。我没有展示我拥有的一些 ViewHolder 代码,主要是因为这只会使它更加混乱。

我发送的 String[]s 在每个中都发送了等量的字符串值。

我期待着任何和所有的帮助。

谢谢!

0 投票
3 回答
1044 浏览

android - Android - Listview 与 viewholder 在按下时更改所选行的背景

我一直在这个网站和其他网站上查找帖子,但没有找到我需要的工作代码。我目前有一个带有自定义行的列表视图,并且我让它们按颜色交替(灰色和透明)。我试图让选定的行变成蓝色(并在按下另一行时返回原始颜色),即使我滚动离开它也保持选中状态。

编辑:这是完整的列表适配器,减去一些图标的填充方式:

以及适配器曾经所属的旧活动的代码:

这段代码曾经适用于我所有的其他 listViews,但由于它使用/依赖于不同的数组和其他东西,我不得不进行更改,这允许我保存显示的选定复选框。

0 投票
0 回答
150 浏览

android - Listview 无法使用 ViewHolder 模式在 Imageview 中渲染位图

这很奇怪,但确实如此。我正在使用 ViewHolder 模式来提高列表性能。getView() 方法有位图,但下面的代码无法在列表视图项的图像视图中呈现位图。

以上无法在列表行图像视图中呈现位图。但是下面的代码确实

在这种情况下,一切(搜索、分配给 imageview 的位图)都可以正常工作。但这会导致列表性能下降,因为每次都会发生布局膨胀。

请帮忙。

注意:我在单独的 AsyncTask 中下载位图,并将它们分配到最初传递给适配器的 arraylist 中。

0 投票
1 回答
949 浏览

android - 关于 ViewHolder 模式的点击问题,但不是 getView

我正在将我的适配器代码从基本getView()更改为ViewHolder模式。我的适配器有一个TextView,一个ImageView和一个ImageButton。一切看起来都很好,但我遇到了一些问题ImageButton。我将发布我的两个代码(一个带有getView(),另一个带有ViewHolder)。一个getView()完美的作品,所以我在这里问,因为我不明白我在哪里做错了ViewHolderImageButton

带有 getView() 的适配器类

带有 ViewHolder 的适配器类

正如你所看到的,里面的代码onClick()是一样的,但ViewHolder它不起作用,有人能解释一下为什么吗?Ps 如果您需要更多代码或课程,请告诉我,我会编辑我的答案。

0 投票
2 回答
1816 浏览

android - ViewHolder ImageView setVisibility 重复

我有一个带有 ViewHolder 模式的适配器。它有一个TextView 和一个ImageView。我必须对适配器中的数据库进行一些检查以显示 ImageView 与否。问题在于将 View.VISIBLE 的可见性设置为其他位置的其他 ImageView。我确定我的数据库不包含与那些图像视图相关的数据,而只包含正确设置的数据。

这是我的代码(我删除了 textview 集合的一部分,因为它运行良好):

这是我的意思的屏幕: 屏幕取景器

只需要添加带有圆圈的图像视图,而不是上面带有 X 的图像视图。如果我向下滚动列表视图,则视图持有者将可见性设置为对不在我的数据库中的其他图像视图也可见。

0 投票
1 回答
2018 浏览

android - ViewHolder not as a inner class

Can the RecyclerView.ViewHolder be used not as a inner class? Are there any issues on doing so?

I have searched around but havent found any documentation on it!