Android中ListView,点击一个item所有item响应
答案:1 悬赏:0 手机版
解决时间 2021-11-08 21:34
- 提问者网友:兔牙战士
- 2021-11-08 08:44
Android中ListView,点击一个item所有item响应
最佳答案
- 五星知识达人网友:大漠
- 2021-11-08 09:09
想问下题主,你点一个item确定是所有的item跟着相应而不是仅有规律性地几个item跟着响应么?我想这个现象是因为convertView的服用引起的。你改变一个item的布局状态(改变一个控件的可见状态),那么会有其他几个复用这个item的布局的item会一起变化。我给的建议是在adapter的getView()方法中,只修改所点击的条目的viewHolder.rl控件的可视状态,同时设置其他未被点击的item的viewHolder.rl控件的可视状态不变。注意,这个后面的“同时”非常重要。我能想到的可行方法:(很有可能会有更好的方法,但本人能力有限只想到这个==题主可以自由发挥)创建一个List list集合,集合长度为条目的个数,初始化时先将list里面所有值置为false,意为未被点击。在你的lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
}
});
这个方法中写list.set(position,true);
然后在adapter中的getView()方法中绑定数据的时候先判断if(list.get(position)==true){}。如果是的话再进行viewHolder.rl控件的可视状态相应的改变。最后最重要的一步,在else{}里面实现viewHolder.rl控件的可视状态不变。这样试一下应该就可以了。楼主试一下吧~
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
}
});
这个方法中写list.set(position,true);
然后在adapter中的getView()方法中绑定数据的时候先判断if(list.get(position)==true){}。如果是的话再进行viewHolder.rl控件的可视状态相应的改变。最后最重要的一步,在else{}里面实现viewHolder.rl控件的可视状态不变。这样试一下应该就可以了。楼主试一下吧~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯