这几日做项目,一直想要实现这种效果,但是尝试了gridview的item的各种listener都没有得到应有的效果,使用click事件,虽然点击得分改变了背景,但是点击其他的,之前被点击的却不能恢复之前的背景,故看了看前辈之前实现的代码,瞬间感觉拨云见日,茅塞顿开。
大致的思路是这样:
1.在传入的List的对象中添加一个一个是否被选中的属性。
2.在baseadapter中的getview中进行判断被选中则改变背景未选中则显示另外的背景。
3.给用来显示的imageview添加onClickListener,点击则遍历list集合将所有的设置为false,之后将再该对象的选中属性设为true,这时再notifydatasetchange。
运行看看是不是只有被点击的改变了背景,点击其他的,之前改变背景的是不是又恢复了呢。