有的时候,会有这样的需求,在listview,GridView这种复用型控件中,实现单个item点击,item内容变色,或者item背景改变,当点击了第一个item,item背景改变,当点击第二个item,第一个恢复,第二个改变背景;
大概就是这样的需求了。
其实,实现起来也是比较简单的,总的来说有两种思路:
第一种思路:
首先,在适配器中
定义一个int变量,用于记录点击下去的那个item的position;
然后定义一个public的动态设置这个position的方法,该方法还是在adapter中,只是他是public的,所以可以直接使用adapter点的方式直接调用,直接设置点击下去的那个position进去,然后在activity中,adapter.notifyDataSetChanged();刷新一下整个listview或者GridView的数据就搞定了;
并在getview中判断,getview的position是否==这个position,如果等于就做改变背景的操作,否则不改变;
代码:
适配器
public class TimeAdapter extends BaseAdapter {
private List list;
private Context context;
private int location;
public TimeAdapter(Context context,List list){
this.context=context;
this.list=list