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

android - 具有持有人模式的列表视图中的按钮

我有一个列表视图,每行都包含一个按钮。

单击该按钮会打开一个对话框,供您选择单值。

问题是当我向下移动列表时,按钮中的值正在移动。第一个值每 8 行重复一次。

这是我的 getView() 代码:

0 投票
2 回答
1175 浏览

android - 带有远程 ImageView 的 Android ViewHolder

我已经实现了我的ViewHolder模式adapter,我在其中ImageView填充了一个远程图像,问题是当我滚动时,我总是在得到正确的图像之前得到一个错误的图像(在几毫秒之后),我想这是因为当前视图是以前膨胀的视图,但我没有看到任何可能的解决方案

谢谢

0 投票
1 回答
571 浏览

android - 带有复选框的列表视图中的查看器问题

我正在尝试使用复选框实现列表视图。侦听器运行良好,我可以看到选择了哪个项目,但在此类中存在问题,因为 cb.getTag() 返回 null。

谁能帮我?

0 投票
1 回答
560 浏览

android - 如何将数据从容器活动传递到自定义适配器

我处于以下情况:

  • 我有来自 Android Studio 的导航抽屉的默认实现,带有一个 navigationDrawerFragment。
  • 我有一个带有自定义适配器的 navigationDrawerFragment 的自定义 listView。
  • 因为我的 listView 中有不同类型的项目,所以我使用经典的持有人模式。

我的问题如下:我想将数据从我的容器活动(facebook 个人资料图片和名称)发送到自定义适配器,以使用这些数据设置持有者。

我怎样才能做到这一点 ?请参阅以下代码:

我需要在 else 中将传递给自定义适配器的数据设置为 facebookProfilPicture。

0 投票
1 回答
468 浏览

android - ListView行clicklistener中的Android ImageButton没有响应

我有一个 ListView,其中的行包含 ImageButtons(如下所示的“O”):

我发现第一行有间歇性行为。起初,点击监听器上的图像按钮似乎并没有被调用只是顶行。我发现确实调用了按钮的 onclicklisteners,但是在我单击行本身之前,单击似乎是排队/缓冲的。

如果没有人知道原因,我会很乐意发布一些代码,但我的代码非常大,需要在发布之前进行修剪。我正在使用光标适配器和自定义视图绑定器,但单击侦听器是在我的活动的 onCreate() 中分配的。

我将点击监听器本身分配给我的 CustomViewBinder 类的 setViewValue() 方法中的图像按钮对象。

我没有使用 ViewHolder(ConvertView 等) - 这是我的问题吗?看起来好像每行都为点击侦听器分配了 3 次,尽管我只在 columnIndex 等于 1 时才这样做。

这是行项目 XML:

这是 getView() 方法:

我已经突出显示了导致我的问题的行。我所做的是使作为组/节标题的项目的行高更大。这改变了使用的布局,并且似乎也弄乱了第一行图像视图的点击处理程序。它还导致触摸第一行以连续突出显示第一行。单击任何其他行,突出显示消失。

更新:考虑到 mmlooloo 的建议,下面的代码似乎对我有用。虽然看起来很丑(我发布的原始代码也是如此!;-))

0 投票
1 回答
2742 浏览

android - 带有自定义 ArrayAdapter 的 ListViewText 中 EditText 的 TextWatcher(和 getView 回收)

我有一个带有自定义 ArrayAdapter 的 ListView,它使用OrderedProductItems(我自己的模型类)列表。在这个 ArrayAdapter 的 getView 中,我使用了 ViewHolder 设计模式:

在我的 ListView 的项目中,我有一个使用自定义 TextWatcher 的 EditText。在这个 TextWatcher 中,我将用户的输入保存到我的 OrderedProductItem 类:

现在我的问题是这样的:由于 ArrayAdapter 使用 getView-recycler(有关 getView 回收(包括图片)的更多信息,请参阅这篇文章),我的 TextWatcher 会覆盖另一个 OrderedProductItem 的不正确数据。例如,假设我的 OrderedProductItem 的 EditTexts 在创建时像这样填充(这里没有错):

  1. 预期的“1”——实际的“1”
  2. 预期的“2”——实际的“2”
  3. 预期的“3”——实际的“3”
  4. 预期的“4”——实际的“4”
  5. 预期的“5”——实际的“5”
  6. 预期的“6”——实际的“6”
  7. 预期的“7”——实际的“7”
  8. 预期的“8”——实际的“8”
  9. 预期的“9”——实际的“9”
  10. 预期“10”——实际“10”

现在当我向下滚动时,会发生以下情况(仍然没有错):

  1. 预期的“5”——实际的“5”
  2. 预期的“6”——实际的“6”
  3. 预期的“7”——实际的“7”
  4. 预期的“8”——实际的“8”
  5. 预期的“9”——实际的“9”
  6. 预期“10”——实际“10”
  7. 预期的“11”——实际的“11”
  8. 预期的“12”——实际的“12”
  9. 预期的“13”——实际的“13”
  10. 预期的“14”——实际的“14”

当我向上滚动时,问题出现了:

  1. 预期的“1”——实际的“14”
  2. 预期的“2”——实际的“13”
  3. 预期“3”——实际“12”
  4. 预期“4”——实际“11”
  5. 预期的“5”——实际的“5”
  6. 预期的“6”——实际的“6”
  7. 预期的“7”——实际的“7”
  8. 预期的“8”——实际的“8”
  9. 预期的“9”——实际的“9”
  10. 预期“10”——实际“10”

我确实尝试在 getView 开始时暂时禁用 TextWatcher(在我获得 EditTexts 之后),然后从 OrderedProductItem 设置值,然后将 MyTextWatcher 重新应用到它们,但是在我重新之后它仍然会更改 OrderedProductItem 的值-应用了我的 TextWatcher ..

有谁知道在使用 TextWatcher 保存 Item 的 EditTexts 的 UserInput 时如何处理 getView 回收?

PS:我知道我可以在 EditTexts 旁边添加一个按钮,所以它只在单击按钮时保存数据,但我不想要这个。

0 投票
4 回答
84 浏览

android - ListView 导致 OutOfMemory 错误

所以我并没有真正得到这个错误消息右边的理由。我不确定为什么会发生这种情况,但我的猜测是这与大约有 50 个高质量的可绘制对象有关。在真正快速滚动时,应用程序崩溃。我觉得好像我正在缓解 ListView 和崩溃的最常见问题,例如使用 View Holders 以及只启动一次充气机。

这是代码

0 投票
1 回答
113 浏览

android - ListView 值消失

我正在使用 SimpleAdapter 填充 ListView 并且每一行都有两个按钮 TextView 和 RadioGroup 按钮。正如您在代码中看到的,当我单击按钮 A 时,我将按钮 A 设置为突出显示,将 TextView 设置为 1 并将文本单选按钮 A 设置为 1,当我单击按钮 B 时,反之亦然。但是当我滚动时,所有值都会消失下。我遵循的答案之一:ListView 的回收机制如何在没有成功的情况下工作。

0 投票
1 回答
2720 浏览

android - 在 ViewHolder 中引用 Activity

在与方法一起存储的 ViewHolder 中保留 Activity 的句柄是否安全setTag

我发现这个问题声称存储对 Activity 的引用可能会导致内存泄漏,但它已在 Android 4.0 中得到修复:https ://code.google.com/p/android/issues/detail?id=18273

具体来说,我想知道拥有一个看起来像这样的 ViewHolder 是否安全:

在我的 ArrayAdapter 中使用 getView 方法,如下所示:

(代码是实际代码库的简化版本,只是为了理解这一点。)

我见过的示例代码都没有存储对除持有者中的视图之外的任何内容的引用。我想知道这是巧合还是设计。

0 投票
0 回答
138 浏览

android - ListView 上的图像混乱(即使使用 viewHolder)

作为对 a 的有效使用BaseAdapter,我使用 ViewHolder 来保存要回收的物品。

通常我用库加载图像,ImageLoader没关系。

这次我从 ByteArray 加载图像,但是当我加载它们并滚动 ListView 时,我得到了一团糟。

这是我的代码:

我该如何解决?

谢谢。