0
  •    ((MightyViewHolder) viewHolder).setText(R.id.tv_Category, mDatas.get(position));
                TextView textView = ((MightyViewHolder) viewHolder).getView(R.id.tv_Category);
                Log.d(TAG, "onBindViewHolder: " + textView.getText());
    
    //            获取选中的资源资源文件
                Drawable selectDrawable = getContext().getResources().getDrawable(R.drawable.home_page_white_point);
                selectDrawable.setBounds(0, 0,
                        selectDrawable.getMinimumWidth(), selectDrawable.getMinimumHeight());
    
    //            获取未选中的资源文件
                Drawable unSelectedDrawable = getContext().getResources().getDrawable(R.drawable.home_page_jdred_point);
                unSelectedDrawable.setBounds(0, 0,
                        unSelectedDrawable.getMinimumWidth(), unSelectedDrawable.getMinimumHeight());
    
                if (this.selectedView == null) {
                    Log.d(TAG, "transform: 此时selectedView为null,position:"+position);
                    this.selectedView = textView;
    //                textView.setCompoundDrawables(null, null, null, selectDrawable);
                    return;
                } else {
                    TextView t = (TextView) this.selectedView;
                    Log.d(TAG, "transform:  此时selectedView不为null,position:"+position);
                    t.setCompoundDrawables(null, null, null, selectDrawable);
                }
    
                textView.setCompoundDrawables(null, null, null, unSelectedDrawable);
                ((MightyViewHolder) viewHolder).setOnClickTextView(R.id.tv_Category, this::onClick);
          zu昨天晚上bindView  是这样的,处理else了-->this.selectedView自己就变了。。。我猜测是复用的问题,以前解决复用,是把状态放在map中 每次刷新的时候根据map中的状态去绑定数据,这次因为是单选,这次的思路是  把选中的view的保存起来。点击的时候修改selectedView,就是把上一个选中的selectedView设置为未选中,当前点击的View  设置为selectedView。else 已经处理了 但是还是会变。。跪求大佬有空更新一下RecyclerView的使用。复用 缓存啥的
    
    1305867802112024576  评论     打赏       李冬冬
    • 拉大锯  回复 @李冬冬
      你这代码是在哪个方法里的呀????
      拉大锯 2020-10-11 14:40   回复 1153952789488054272
    • 李冬冬  回复 @拉大锯
      RecyclerView中Adapter中的onBindViewHolder 里面的。我现在是把onBindViewHolder 中绑定数据这一块 抽取到了 Activity中。
      李冬冬 2020-10-12 10:19   回复 1305867802112024576
    • 拉大锯  回复 @李冬冬
      onBindViewHolder 里的内容,不可以做成成员变量,否则就出问题了。如果你做成了成员变量,那第它指向的就是最后一个item。你还是好好学习一下基础知识呗,这些问题都好简单的。在我们的学院里就有RecyclerView的课程。
      拉大锯 2020-10-12 10:34   回复 1153952789488054272
    • 拉大锯  回复 @李冬冬
      this.selectedView = textView; 你这个就做成了成员了。
      拉大锯 2020-10-12 10:35   回复 1153952789488054272
    • 李冬冬  回复 @拉大锯
      好的 我去学习一下,谢谢
      李冬冬 2020-10-12 10:38   回复 1305867802112024576
    • 李冬冬  回复 @拉大锯
      那为啥 position 就可以了呀?就是我选中以后,把选中的position位置设置成成员变量。
      李冬冬 2020-10-12 10:39   回复 1305867802112024576
    • 拉大锯  回复 @李冬冬
      你多选 几个试试看!
      拉大锯 2020-10-12 11:56   回复 1153952789488054272
  • 对于状态的,处理了if,还要处理else,否则就是复用的状态。因为RecyclerView的Item是复用的。

    1153952789488054272  评论     打赏       拉大锯
    相关问题
    _empty · Android
    2019-10-20 23:51 628 2
    application · Android
    2019-11-05 00:26 779 2
    三流废物 · android / 小白
    2019-11-22 00:35 1067 5
    豪豪好嘛 · Android / GPS
    2019-11-26 20:15 884 5
    Jian · android
    2019-11-28 01:51 615 2
    2019-12-01 01:01 705 2
    小陈学编程 · Android
    2019-12-01 19:08 633 2
    fkinggod · Android
    2019-12-08 09:19 661 5
    fkinggod · Android
    2019-12-08 20:47 610 2
    kissmyass · Android
    2019-12-09 07:08 537 2
    独一无二的名zi · Android
    2019-12-30 06:48 415 2