适配器的值空情况

出现情况:先建适配器,此时为无值情况

this.listData=listData;
        notifyDataSetChanged();//刷新
//先建适配器
mySpAdapter = new MySpAdapter(PlanSelectSmallActivity.this);
        spFrequency.setAdapter(mySpAdapter);
        //再建值
mySpAdapter.setData(listData);

解决办法:

 @Override
    public int getCount() {
        return listData==null?0:listData.size();//size为0
    }

    @Override
    public Object getItem(int position) {
        return listData==null?null:listData.get(position);//position为空
    }

onCreateView执行规律

加下面这个后,就执行有序,不然会错乱

//刷新图片不混乱
    @Override
    public int getItemViewType(int position) {
        return position;
    }

顺序为1到position

实现关卡

 @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    public void onBindViewHolder(@NonNull ViewHolderLattice holder, int position) {
        Log.d("MyLatticeAdapter",allMouth+"\n"+ageMouth);
        for (int i = 0; i <ageMouth ; i++) {//25
            if (position==i){
                holder.ci_lattice.setEnabled(false);//不可点击
                if (!holder.ci_lattice.isEnabled()){//如果不可点击就变色
                    holder.ci_lattice.setImageResource(0);//去掉全部颜色
                    holder.ci_lattice.setImageResource(R.color.ci_end);
                }
            }
        }
    }

内存优化一下下

 code:for (int i = position; i <ageMouth ; i++) {//改进,内存优化:原来是for (int i = 0; i <ageMouth ; i++)
            if (position==i){
                holder.ci_lattice.setEnabled(false);//不可点击
                if (!holder.ci_lattice.isEnabled()){//如果不可点击就变色
                    holder.ci_lattice.setImageResource(0);//去掉全部颜色
                    holder.ci_lattice.setImageResource(R.color.ci_end);
                    break code;//改进,内存优化
                }
            }
        }

适配器接口回调

更新中……
如果对您有帮助,就给个赞吧,师兄师姐(我看到有帮助的文章都会给点赞的,你们是不是应该给个赞啊)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐