【发布时间】:2015-03-24 08:03:32
【问题描述】:
我的 ListView 有点问题。
我用 ArrayList<String> 每个 ArrayAdapter<String> 填充我的 ListView 有超过 100 个项目。
在显示我的对话框之前,我想突出显示和禁用某些项目。我找到了ListView.post(new Runnable() {...});的解决方案
我用lv.getChildAt(2).setBackgroundColor(Color.BLUE);突出显示我的项目
并使用lv.getChildAt(3).setEnabled(false);禁用项目
我在OnItemClickListener() 中也这样做了。
现在我的问题:
如果在 ListView 中有 11 个项目在运行时可见,则高亮和禁用模式将每 11 个项目重复一次。
即,如果我只突出显示 3. 项目以及 14.、25. ... 项目将获得蓝色背景。
如果我禁用了 4. 项目,那么 15. 和 26. 等也会被禁用。
如果我快速滚动到按钮并返回顶部,其他项目会突出显示并禁用。
另一个问题是,我只能访问 post-runnable 中的前 (11) 个可见项目。如果我尝试突出显示 20. 项目,应用程序将崩溃并出现 NullPointerException。
如何防止“项目回收”并在显示对话框之前获得对所有项目的完全访问权限?
【问题讨论】:
标签: java android android-listview highlighting