我的行布局中有一个按钮,点击切换其状态(及其背景资源)。
在onClickListener上,我将相应的数据更新到此行,然后调用
list.getAdapter().getView(i, view, list);
调用适配器getView(具有更新的数据),但它不会直观地更新我的可见行。有什么想法吗?
请注意,当我向下滚动然后向后滚动时,行正在更新。
PS1:调用adapter.notifyDataSetChanged()有效,但我不想这样做,因为我想更新一行。
PS2:我知道我可以在其监听器中自行更新行的按钮,但我更愿意让适配器为我执行此操作,因为稍后更新行会变得更复杂。
答案 0 :(得分:3)
致电
list.getAdapter().getView(i, view, list);
错了。系统负责调用getView来更新/呈现ListView的内容。您必须更新用于构建 ListView内容的数据集,然后调用notifyDataSetChanged()
。