我有两个ListViews(A和B)与相同类型的项目(我创建的类)
当我点击A中的某个项目时,它会在B上添加此对象,如果我再次单击它会将其删除.仅在选择项目时,我使用view.setBackgroundColor(myColor)更改其背景.
我希望能够从列表B中删除该项(它可以工作),但我还想重置背景颜色.我无法弄清楚如何获取我正在移除的这个项目的视图.
有任何想法吗?
eri*_*ion 10
无法保证任何特定的ListView项目在任何给定时间都会有视图.如果该项目当前在屏幕外,则可能没有视图.由于特定项目可能没有视图,因此尝试获取项目视图可能没有任何意义.
除此之外,由于ListView创建和重用视图的方式,如果您只是直接修改视图,您将看到一些奇怪的,不良影响.当用户滚动列表时,变为可见的项目将错误地与具有落在可见部分之外的其他项目具有相同的背景.
我不知道以下是否是实现功能的最佳方式,因为我不知道更改后重建列表的成本.这是我可能会这样做的(可能是天真的)方式:
isInSecondList. getView()在适配器中覆盖.在getView(),根据项目的值将背景设置为正常或突出显示isInSecondList.notifyDataSetChanged().小智 5
int position = 0;
listview.setItemChecked(position, true);
View wantedView = adapter.getView(position, null, listview);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26906 次 |
| 最近记录: |