刷新适配器中item的数据
刚开始刷新item的状态,比如点击TextView后,需要让TextView的背景色变灰色,之前通过textView对象的传递来设置背景色一直显示不出来,正确的处理方式为:
1.针对ListView:
public void updateView(int position) { //得到第一个可显示控件的位置, int visiblePosition = mListView.getFirstVisiblePosition(); //源码getChildAt(index)是相对与当前显示的第一个position来计算的,所以这里必须减去第一个显示的item的索引 int index = position - visiblePosition; if (index >= 0) { //得到要更新的item的view View view = mListView.getChildAt(index); //从view中取得holder ViewHolder holder = (ViewHolder) view.getTag(); holder.mCheck.setBackgroundResource(R.mipmap.collect_normal); mList.get(position).set..("你改变后的状态");//改变数据源对应属性的值 } }
2.针对RecyclerView
//获得需要更新的viewhoder ViewHolder viewHolder = (ViewHolder) mRecyclerView.findViewHolderForAdapterPosition(position); //改变状态 代替notifyDataSetChanged(); viewHolder.mCheck.setBackgroundResource(R.mipmap.collect_normal); mList.get(position).set...("改变后的值");//改变数据源对应的状态