ListView 中的按钮出现故障

发布于 2024-12-19 07:07:50 字数 253 浏览 0 评论 0原文

我在 ListView 的每个项目中都有一个按钮,其背景由 XML 定义,启用时一个背景,禁用时另一个背景。当 ListView 加载时,它显示正确。但是,由于某种原因,我无法弄清楚,如果我向下滚动然后向上滚动,则会显示错误的背景。

我想知道这个问题的解决方案,但除此之外,一般来说我想要完成的是: 我在 ListView 中有一个按钮,可以将用户带到给定项目的网站。如果没有网站,我希望该按钮消失或被禁用。我似乎对这两个选项都有同样的问题。

预先感谢您的努力

I have a button in each item of a ListView whose background is defined by an XML, one background when enabled and another when disabled. When the ListView loads, it comes out correct. But, for some reason I can't figure out, if I scroll down and then scroll back up, the wrong background shows up.

I'd like to know the solution to this problem, but besides that, in general what I want to accomplish is this:
I have a button in the ListView to take the user to the website for the given item. If there is no website, I want the button to disappear, or be disabled. I seem to have the same problem with both options.

Thanks in advance for your efforts

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感情旳空白 2024-12-26 07:07:50

问题很可能出在您的 getView() 方法上。 Android 会回收视图以节省内存,因此,例如,当您向下滚动时,它会在适配器上调用 getView(int, View, ViewGroup),其中 View 是刚刚离开屏幕顶部的项目。如果您不使用来自适配器的新数据重新填充该项目(即,仅返回convertView),它将把离开屏幕顶部的视图放置在“新”视图应该在的位置。

It seems most likely that the problem lies with your getView() method. Android recycles views to save memory, so, for example, when you scroll down, it calls getView(int, View, ViewGroup) on your adapter where View is the item that just left the top of the screen. If you're not re-populating the item with the new data from the adapter, (ie, just returning convertView) it will put the View that left the top of the screen where the "new" one should be.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文