刷新适配器中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...("改变后的值");//改变数据源对应的状态

 

RecyclerView刷新单个item的指定view:

posted @ 2017-01-08 10:23  ts-android  阅读(977)  评论(0编辑  收藏  举报