我有一个listview和一个相应的listview适配器。
Listview中显示的视图是我自己编写的,它是一个带有一个按钮和一个图像按钮的framelayout。图像按钮是红叉,删除条目,常规按钮选择条目。
当用户按下常规按钮时,该项目被选中,我想通过将该项目的背景设置为绿色来向用户显示该项目。应用程序存储用户选择的项目以及下次呈现列表视图时,应选择该项目并选择绿色。
请注意,我的列表视图中应始终有一个且只有一个选定的项目。
在我的adaper的getView(..方法中,当用户点击它时,它很容易改变按钮的颜色。但是在用户点击之前绿色的按钮是我无法参考的。
我看到的所有指南建议使用notifyDataSetChanged。但是,在这种情况下,基础数据不会更改,并且它不是正确的(或可能的)解决方案。
所以我认为我的问题归结为:我如何在listview中引用另一个视图?
(是的,我看过这篇文章:Highlight selected item in ListView on Android。它描述了我的问题并用#34;回答,然后将之前所选项目背景的颜色改回正常状态&#34 ;但我仍然无法参考PREVIOUS所选项目。
谢谢!
答案 0 :(得分:0)
为什么不使用Radio Buttons?这正是您需要的设计。你可以添加一个"红叉"在每一行删除该行。所选行是唯一的,您可以在RadioButton.isChecked();
RadioGroup
上进行迭代,以相应地设置背景颜色。