Android:第一个元素列表视图表现得很奇怪

Android:第一个元素列表视图表现得很奇怪,第1张

概述在我的 Android应用程序中,我有一个包含5个元素的ListView.我创建了一个自定义适配器,以便更改listView的某些元素的背景.例如,列表视图的第二项还没有准备好,所以我想setBackground(Color.Gray),所以他看起来没有做到.为了做到这一点,我在自定义适配器中覆盖了ArrayAdapter中的getView()方法,如下所示: @Overridepublic V 在我的 Android应用程序中,我有一个包含5个元素的ListVIEw.我创建了一个自定义适配器,以便更改ListVIEw的某些元素的背景.例如,列表视图的第二项还没有准备好,所以我想setBackground(color.Gray),所以他看起来没有做到.为了做到这一点,我在自定义适配器中覆盖了ArrayAdapter中的getVIEw()方法,如下所示:

@OverrIDepublic VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {    VIEw v = super.getVIEw(position,convertVIEw,parent);     if(!itensAvailable[position]) v.setBackgroundcolor(color.Gray);    return v;}

奇怪的是,无论我使用布尔值itensAvailable [position]还是!itensAvailable [position],列表的第一个元素总是让它的背景改变了!除了第一个元素之外,列表中的所有其他元素都表现得像预期的那样.如果我这样做,那就更奇怪了
if(position == 2)v.setBackgroundcolor(color.Gray);

它改变了位置2中项目的背景,也改变了第一项!如果我做

if(position == 2) {v.setBackgroundcolor(color.Gray);System.out.println(v.getText());}

更奇怪!仅打印位置2的文本,而不打印第一个项目中的文本.

到底是怎么回事? AndroID漏洞?顺便说一下,我在XOOM 3.2 Honeycomb设备上测试它.

显然,如果我对代码进行评论,那么第一项并没有改变它的背景.

解决方法 这很奇怪!
如果你写下会发生什么:

@OverrIDe     public VIEw getVIEw(int position,VIEwGroup parent) {        VIEw v = super.getVIEw(position,parent);         if(!itensAvailable[position]) v.setBackgroundcolor(color.Gray);        else v.setBackgroundcolor(color.transparent);        return v;    }
总结

以上是内存溢出为你收集整理的Android:第一个元素列表视图表现得很奇怪全部内容,希望文章能够帮你解决Android:第一个元素列表视图表现得很奇怪所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存