一言不合就上图
点击变色:
这里没有用到什么高大上的技术点,只是静下心好好想想“面向对象”,利用一点小逻辑。
我这里用的是recyclerView控件,在recyclerView的适配器里:
//先声明一个int成员变量private int thisPosition;//再定义一个int类型的返回值方法public int getthisPosition() {return thisPosition;}//其次定义一个方法用来绑定当前参数值的方法//此方法是在调用此适配器的地方调用的,此适配器内不会被调用到public void setThisPosition(int thisPosition) {this.thisPosition = thisPosition;}//在recyclerView的onBindViewHolder重写方法中判断当前position是否是选中的position//如果是就设置背景,不是就设置另一种颜色的背景public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {final RecViewHolderLeft recViewHolderLeft = (RecViewHolderLeft) holder;if (position == getthisPosition()) {recViewHolderLeft.titel.setBackgroundColor(Color.YELLOW);} else {recViewHolderLeft.titel.setBackgroundColor(Color.WHITE);}
紧接着是在activity或者fragment的点击条目事件的地方进行调用适配器内的setThisPosition方法和点击事件的position进行绑定
RecAdapterLeft recAdapterLeft = new RecAdapterLeft(getActivity(), leftBean);recViewL.setAdapter(recAdapterLeft);//recyclerView的点击事件(点击事件是recyclerView专属的自定义回传接口)//不是recyclerView的话点击事件有所不同recAdapterLeft.setOnRecyclerViewItemClickListener(new RecAdapterLeft.OnItemClickListener() {@Overridepublic void onClick(int position) {//拿适配器调用适配器内部自定义好的setThisPosition方法(参数写点击事件的参数的position)recAdapterLeft.setThisPosition(position);//嫑忘记刷新适配器recAdapterLeft.notifyDataSetChanged();}});
ok大功告成
强调几点:
1我的Android studio是2.3.3版本,SDK是-v7:26.+’
compile 'com.android.support:appcompat-v7:26.+'
轉自:/yueorange/article/details/79095537
如果觉得《Android recyclerView/listview的点击变色 点击换背景颜色》对你有帮助,请点赞、收藏,并留下你的观点哦!