问题标签 [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 投票
1 回答
850 浏览

android - 在android listview中获取选中项目数组中的标记值

这是我的 ContactsAdapter 类,从中显示带有复选框的列表。这里可以得到检查项目的标签。还有另一个类 FanFragment,在其中单击按钮(ContactList)时,我必须在已检查项目的数组中获取 Tag 的所有值。

FanFragment.class

0 投票
1 回答
276 浏览

android - 从自定义列表视图的客户列表适配器中提取条目以获取新意图

我正在尝试单击列表条目。My List 是一个自定义列表视图,其中的数据是从 ArrayAdapter 中提取的。该列表显示了 Array 条目的 3 个部分和一张图片,但我想将这些项目和数组条目的其余部分发送到下一个活动,以显示有关所选项目的更多信息。

下面是我的类,里面有适配器。您将看到一个注释部分 /** **/ 我一直在试图弄清楚如何将这些项目放入,但我似乎无法弄清楚。每本书都有 12 个属性,但在单击以获取更多信息之前,listView 中只显示了 4 个。

我正在使用 Viewholder,所以我不确定我是否会影响我,但我确实计划在单击项目之前在列表视图中有一个相当长的列表。

对此的任何帮助都会很棒!

0 投票
3 回答
25456 浏览

android - What is the working of setTag and getTag in ViewHolder pattern?

I have a simple code snippet for implementing custom listview.

My code is as follows:

WeatherAdapter.java :

WeatherHolder.java:

I have seen so many answers on SO and other sites and I understood the recycling mechanism of listview.

I also understood that from viewholder, we can hold the child views in the adapter and we do not have to call findViewById() many times. So, it is for optimization.

But I have only the confusion in setTag(holder) and getTag() methods. From this question, I came to know that it is for making a key-value pair on multiple objects, so that we can access them easily. But, I do not understand why they are required here...because, we do not have multiple holder objects...only we have to change holder's variables each time. can we code here without using setTag and getTag?

can anyone explain better that what setTag and getTag do "here"?

0 投票
1 回答
982 浏览

android - 使用 ViewHolder 引用 ListView 中的另一个项目

我需要一点帮助:我有一个带有自定义列表项和查看器的列表视图。我复制的代码代表我正在使用的适配器,但版本更简单。为了简单起见,假设我在每个项目中都有一个ImageView和一个。我想在应该执行以下操作的每个项目上应用 a:更改另一个项目内 LinearLayout 的可见性,因此在另一个位置(例如,始终是第 5 个)。显然,如果我打电话,它会改变同一位置的可见性。我假设我可以以某种方式引用我需要更改的项目,但我不确定。你们怎么能这样?LinearLayoutListViewsetOnClickListenerholder.rl.setvisibility(..)

谢谢你们!

0 投票
2 回答
4509 浏览

android - RecyclerView.Adapter 中的 ViewHolder 不特定于位置

以下是我的onBindViewHolder(inside MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>)代码的一部分

该部件HIDE THE VIEW未按预期工作。当我向下滚动时,视图工作正常。但是,当我开始向上滚动,即重新访问以前的视图时,应该是的 ImageViewsVISIBLE变为GONE,尽管我检查了我的数据集并确认它没有被修改。尝试在视图上调用其他方法也会给出不稳定的结果(数据集中的位置和项目不匹配)。

似乎视图持有者没有绑定到 RecyclerView 内的特定位置。

如果我删除该HIDE THE VIEW部分,代码将按预期工作。有没有办法解决这个问题并在我的情况下动态隐藏视图?

注意:我使用了一些 AsyncTasks 来更新数据集并调用notifyDataSetChanged(),如果这是相关的。

0 投票
1 回答
125 浏览

java - 多个充气机上的 ViewHolder

我对 listviews 上的 viewholder 有一个充气问题。实现了viewholder,它得到错误的inflater,所以消息显示错误。(在图像 10。消息不是来自我,而且每当我滚动时错误消息都会发生变化,我变成 7,4 或任何其他,就好像它随机使用充气机一样)

我有 2 种不同的充气机,一种用于显示他们的 profileImage,另一种用于我。

这是代码:

和 viewHolderClass :

目前,我只设置了 messageHour 和 messageText,但除图像之外的所有组件都在我认为不会导致问题的线性布局(messageBubbleLayout)内。

谢谢你的帮助

在此处输入图像描述

0 投票
1 回答
187 浏览

android - 数据库中的所有图像都加载到第一个 ListView 错误中

我正在从数据库中提取数据,各种字符串和表示外部目录中图像的图像路径的字符串。

我的问题是当列表视图加载来自光标对象的所有图像时,都将其加载到第一个列表视图中,这很耗时,然后每个图像都正确加载到后续视图中。

所以我的问题是为什么数据库中的每个图像都被加载到第一个列表视图中,而不是每个列表视图中的一个图像。

这是我的光标适配器代码,我使用异步任务从数据库加载图像(提前道歉它的代码分配!)。

任何输入表示赞赏。

这是异步内部类,其中图像从路径获取到 ext 目录,调整大小,然后填充视图持有者......

类 getBitmapImage 扩展 AsyncTask{

0 投票
1 回答
945 浏览

android - ViewHolder 乱七八糟的视图

我在我的 listView 中实现了 ViewHolder 和 convertView。我的 listView 由一个自定义适配器填充,其中包含一个预订列表。当我单击一个项目时,一个不可见的布局会从右向左滑入,以显示按钮。我可以通过单击关闭按钮关闭此覆盖布局,使其再次隐藏。在这个覆盖布局上,我有一个删除按钮,它使我能够删除该项目。到目前为止,一切都很好。当我擦除一个项目时,该项目按预期消失,然后重新加载适配器。下面的项目占据已删除项目的位置,但仍然不可见。我知道它在这里,因为我仍然可以单击该项目来触发覆盖视图。所以覆盖视图是可见的,但不是项目。我不知道为什么会这样。我怀疑 ViewHolder 应对这种行为负责,但我不能 找不到解决办法。谢谢您的帮助。

在这里观看视频:http: //youtu.be/KBGEvbUq-V0

我的预订课程:

并且项目膨胀了:

0 投票
2 回答
362 浏览

android - 如何使用分隔符实现 ViewHolder 模式?

我有一个显示两种不同类型数据的列表视图,一种是分隔符。每种数据类型都存储在一个数组列表中。因此有两个列表。每个列表的内容由一个特殊的行(分隔符)与另一个列表分隔。第一行也是分隔符行。在getView我必须区分普通数据行和分隔​​符行。

首先,我检查是否必须在当前位置显示分隔符。这工作正常。

我试图实现视图持有者模式,但我经常失败。在必须考虑包括分隔符在内的不同类型的行的情况下,有人可以告诉我如何使用这种模式吗?

0 投票
1 回答
815 浏览

android - 如何在自定义光标适配器中保留edittext值

在将堆栈溢出的几乎所有答案应用于同一主题后,但我找不到我的问题的解决方案。我的问题是我有一个列表视图,其中每行包含一个问题和一个编辑文本。但是当我在编辑文本中滚动列表视图数据时,它可能会发生在其他编辑文本中。即,如果我在滚动后的第一个编辑文本中写了一些东西,它可能会发生在第二或第三行编辑文本中。

我什至从 cursoradapter 类中尝试过一些东西,但仍然如此。

请帮帮我。

我找到了方法,下面是我用于保留用户输入的更新代码。希望它对某些机构有所帮助。

再补充一件事

android:descendantFocusability="beforeDescendants"

当用户单击列表视图的项目时,这将允许子视图获得焦点。为了在用户滚动列表视图时存储值,我使用了包含 hashmap 对象的arraylist。我学到的第二件事是,永远不要使用'=='来比较字符串,而不是使用 isEmpty 方法或 contains 方法。