Android:GridView中实现点击Item变色,再点击还原。
2017-03-02 19:02
405 查看
使用GridView时想实现点击其中的一个Item,该Item改变背景,再次点击Item变回原来的背景,网上搜了很多资料都没有看到类似的案例,但还是有所启发,现来分享我的做法。 首先,首先为GridView自定义adapter适配器,继承BaseAdapter类。
实现效果的重要因素如下,为item设置一个标记点击状态的数组。
public class gridAdapter extends BaseAdapter { final itemLength = 16; private LayoutInflater layoutInflater; private List<String> gridDataList = new ArrayList<>(); private int clickTemp = -1;//标识被选择的item private int[] clickedList=new int[itemLength];//这个数组用来存放item的点击状态 private Context c; gridAdapter(Context context){ c = context; layoutInflater = LayoutInflater.from(context); for (int i =0;i<itemLength;i++){ clickedList[i]=0; //初始化item点击状态的数组 } } ---------- 以下代码省略 ---------- }
然后在定义的adapter中写一个方法,用于识别当前被选择的item
public void setSeclection(int posiTion) { clickTemp = posiTion; }
在setOnItemClickListener中.将点击的Item位置通过setSeclection( )传到adapter。
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { gridadapter.setSeclection(position); gridadapter.notifyDataSetChanged(); } });
接下来adapter中很重要的重载方法getView()。
@Override public View getView(int position, View convertView, ViewGroup parent) { //..................代码省略 if(clickTemp==position){ //根据点击的Item当前状态设置背景 if (clickedList[position]==0){ convertView.setBackgroundColor(Color.BLUE); clickedList[position]=1; } else { convertView.setBackgroundColor(Color.TRANSPARENT); clickedList[position]=0; } } //..................代码省略 }
提醒:不要忘了notifyDataSetChanged(),否则点击效果不会显示。
在修改适配器绑定的数据后,利用notifyDataSetChanged()刷新Item。
上一篇android:代码中动态添加子布局
下一篇ScrollView与GridView滚动发生冲突
相关文章推荐
- Android:GridView中实现点击Item变色,再点击还原。
- Android GridView之实现单元格合并,以及第一个item点击无响应或显示不正常的解决方案
- Android GridView 实现9宫格菜单,并实现item点击按压效果更改图片
- android gridview 选择变色 再点击还原 并支持多选。记录贴 01
- Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色
- Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- [原创]扩展GridView实现多选(全选)、点击行任意位置选择行、选中变色、添加双击事件等
- 扩展GridView实现多选(全选)、点击行任意位置选择行、选中变色、添加双击事件等
- Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- android中liestview 或则gridview 点击某个item图标,从服务器端怎么...
- android GridView 拖拽Item及滚屏实现
- Android--GridView/ListView 点击Item修改Item背景 标识是当前选择项方法:
- Android中ListView的item实现点击任意位置都触发事件
- Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- android 往dialog中加入listview,并实现listview中item的点击事件
- Android GridView的item点击事件没反应
- android Gridview点击item返回psition的函数
- android Gridview 点击某个item 改变item的背景