ListView的每个Item下都有2个Button(A和B),需求是点击ButtonA,然后ButtonA隐藏。
可是在上下滚屏操作中,发现屏幕下方最新出现的某个Item上的ButtonA也被隐藏了。
如果我分别把同屏的2个Item下ButtonA都隐藏,那么向下滚屏后,又会在某处新出现2个ButtonA被隐藏的Item.
怎么让Item记住他的Button的状态呢?
Android? listview
------解决方案--------------------
你的adapter中的getView方法怎么写的?
可以用一个List<HashMap<String,Boolean>>来存放button信息
在getView中
if(!list.get(position).get("A")){
btnA.setVisibility(View.GONE);
}
然后再onItemClickListener的onClick方法中
改变对应位置的hashmap的值,然后再用adapter.notifyDataSetChanged();刷新界面。
------解决方案--------------------
getView方法返回的convertView是重用的,就是如果前面有它会直接拿来用而不会重新创建,只是里面的数据变了。
要想达到你想要的结果,你需要点击按钮的时候存储对应的值到list中,然后listview展示的时候,每个item需要取前面那个值做判断然后决定按钮是否隐藏,不知道我说明白了没有。