Android Recyclerview控制复制

Android Recyclerview控制复制,android,android-studio,android-recyclerview,Android,Android Studio,Android Recyclerview,我真的需要一些帮助。花了好几天的时间试图找出问题所在,却找不到。事情是这样的 每次我做data.remove(position)notifyitemremove(position)时,它都会对右边的项目进行去同步和删除,但是这些项目删除得很好,直到列表到达第一个项目,然后应用程序崩溃 然后我使用notifyitemrangechange(position,data.size())和id保持位置跟踪良好,但是视图发生了一些事情,它们开始从删除的视图中获取垃圾数据。。。这个问题让我抓狂,我会连接图像

我真的需要一些帮助。花了好几天的时间试图找出问题所在,却找不到。事情是这样的

每次我做data.remove(position)notifyitemremove(position)时,它都会对右边的项目进行去同步和删除,但是这些项目删除得很好,直到列表到达第一个项目,然后应用程序崩溃

然后我使用notifyitemrangechange(position,data.size())和id保持位置跟踪良好,但是视图发生了一些事情,它们开始从删除的视图中获取垃圾数据。。。这个问题让我抓狂,我会连接图像和适配器,因为那里发生的一切

需要注意的是,如果从右向左删除视图,则一切都会非常完美。回收器水平滚动

公共类MyAdapter扩展了RecyclerView.Adapter
您的方法的主要问题是在
MyViewHolder
内使用
position
。您应该在BindViewHolder上注意这一点:

RecyclerView不会调用此方法 如果项目在数据集中的位置发生变化,除非项目本身 无效或无法确定新位置。出于这个原因,你只应该 在获取内部相关数据项时,使用
位置
参数 此方法不适用,不应保留其副本。如果以后需要项目的位置 在上(例如,在单击侦听器中),使用{@link ViewHolder#getAdapterPosition()},它将更新适配器位置

因此,删除项目后,其他项目的位置会受到影响,并且在触发删除事件时可能会使用错误的位置结束,请记住,视图是循环使用的

您应该使用
holder.getAdapterPosition()
参考当前项目的位置

试着这样做:

在ViewHolder外部处理
onCLickListener

MyViewHolder

class MyViewHolder extends RecyclerView.ViewHolder {

        //definicioin de variables

        TextView txt_comanda;
        TextView txt_mesa;
        TextView tid;
        TextView torden;
        TextView te;

        Button btn_cerrar;
        Button be;
        LinearLayout le;
        private LinearLayout lyocomanda;

        private int anchomanda = Math.round(inflater.getContext().getResources().getDimension(R.dimen.parents_size));

        public MyViewHolder(View itemView) {
            super(itemView);

            //inicializacion de controles

            lyocomanda = (LinearLayout) itemView.findViewById(R.id.lyocomanda);

            txt_comanda = (TextView) itemView.findViewById(R.id.txt_comanda);

            txt_mesa = (TextView) itemView.findViewById(R.id.txt_mesa);

            tid = (TextView) itemView.findViewById(R.id.tid);

            torden = (TextView) itemView.findViewById(R.id.torden);

            btn_cerrar = (Button) itemView.findViewWithTag("primal");

        }

        void setData(Comanda comanda) {

            //setear la data

            String cadena= comanda.getOrden();

            Integer tope = cadena.length();

            Boolean tijera_categoria = false;
            Boolean tijera_articulo = true;
            Boolean tijera_contorno = true;
            Boolean tijera_cambio = true;
            boolean creador=false;

            Integer indisup;
            Integer indiin = 0;
            char apuntador;
            String Buscado = "";
            String Buscado_contorno = "";
            String Buscado_categoria = "";
            Integer id = -1;

            String tag="";

            this.txt_comanda.setText(this.position+"");

            this.txt_mesa.setText(comanda.getMesa());

            this.tid.setText(comanda.get_id());

            this.torden.setText(comanda.getOrden());

            for (int i = 0; i < tope ; i++) {


                apuntador =cadena.charAt(i);

                if (Buscado.equals("Bebidas"))
                {
                    cadena="";
                    break;
                }
                else
                {
                    if (apuntador == '$')
                    {
                        cadena="";
                        break;
                    }
                    else
                    {
                        //EJECUCION PRINCIPAL

                        if (apuntador == '#' && !tijera_categoria) {
                            if (i == 0) {
                                indiin = i + 1;
                            }
                        }

                        if (apuntador == '!' && !tijera_categoria) {
                            tijera_categoria = true;
                            tijera_articulo = false;
                            indisup = i;

                            id =id+1;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            Buscado_categoria = Buscado;

                            tag= position + ""+id;
                            this.be = new Button(inflater.getContext());
                            creador= true;
                            this.be.setTag(tag);
                           // this.be.setId(position);
                            this.be.setOnClickListener(MyViewHolder.this);
                        }

                        if (apuntador == '%' && !tijera_articulo) {
                            indisup = i;
                            tijera_articulo = true;
                            tijera_contorno = false;

                            Buscado = cadena.substring(indiin, indisup);

                            indiin = indisup + 1;

                            this.be.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);
                            if (Buscado_categoria.equals("Fondos")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.fondos, null));
                            }
                            if (Buscado_categoria.equals("Entradas")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.entradas, null));
                            }
                            if (Buscado_categoria.equals("Postres")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.postres, null));
                            }
                            be.setText(Buscado);
                            be.setLayoutParams(new LinearLayout.LayoutParams(this.anchomanda, LinearLayout.LayoutParams.WRAP_CONTENT));
                            this.lyocomanda.addView(be);
                        }

                        if (apuntador == '*' && !tijera_contorno) {
                            indisup = i;
                            tijera_cambio = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado.equals("")) {
                                Buscado_contorno = Buscado;
                                this.te = new TextView(inflater.getContext());
                                this.te.setText(Buscado);
                                this.te.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.te.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);

                                if (creador){
                                    this.le = new LinearLayout((inflater.getContext()));
                                    creador=false;
                                }


                                this.le.addView(this.te);

                            }

                        }

                        if (apuntador == '#' && !tijera_cambio) {
                            indisup = i;
                            tijera_contorno = true;
                            tijera_cambio = true;
                            tijera_categoria = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado_contorno.equals("")) {
                                this.le.setLayoutParams(new LinearLayout.LayoutParams(anchomanda, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.le.setOrientation(LinearLayout.VERTICAL);
                                this.le.setBackground(inflater.getContext().getDrawable(customborder));
                                this.lyocomanda.addView(this.le);
                                //cadena ="";
                            }

                        }


                    }//FIN DE LA EJECUCION PRINCIPAL
                }//DEL INICIO DE EJECUCION PRINCIPAL

            }// DEL FOR

        }
...

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {

    Comanda comanda = list_comandas.get(position);

    holder.setData(comanda);

    // set onCLickListener 
    holder.btn_cerrar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            removeItem(holder.getAdapterPosition());
        }
    });

   //  mostrarMensaje("agregado:" + position);

}

...
class MyViewHolder extends RecyclerView.ViewHolder  implements View.OnClickListener{

        //definicioin de variables

        TextView txt_comanda;
        TextView txt_mesa;
        TextView tid;
        TextView torden;
        TextView te;

        Button btn_cerrar;
        Button be;
        LinearLayout le;
        private LinearLayout lyocomanda;

        private int anchomanda = Math.round(inflater.getContext().getResources().getDimension(R.dimen.parents_size));

        public MyViewHolder(View itemView) {
            super(itemView);

            //inicializacion de controles

            lyocomanda = (LinearLayout) itemView.findViewById(R.id.lyocomanda);

            txt_comanda = (TextView) itemView.findViewById(R.id.txt_comanda);

            txt_mesa = (TextView) itemView.findViewById(R.id.txt_mesa);

            tid = (TextView) itemView.findViewById(R.id.tid);

            torden = (TextView) itemView.findViewById(R.id.torden);

            btn_cerrar = (Button) itemView.findViewWithTag("primal");
            btn_cerrar.setOnClickListener(MyViewHolder.this);

        }

        void setData(Comanda comanda) {

            //setear la data

            String cadena= comanda.getOrden();

            Integer tope = cadena.length();

            Boolean tijera_categoria = false;
            Boolean tijera_articulo = true;
            Boolean tijera_contorno = true;
            Boolean tijera_cambio = true;
            boolean creador=false;

            Integer indisup;
            Integer indiin = 0;
            char apuntador;
            String Buscado = "";
            String Buscado_contorno = "";
            String Buscado_categoria = "";
            Integer id = -1;

            String tag="";

            this.txt_comanda.setText(this.position+"");

            this.txt_mesa.setText(comanda.getMesa());

            this.tid.setText(comanda.get_id());

            this.torden.setText(comanda.getOrden());

            for (int i = 0; i < tope ; i++) {


                apuntador =cadena.charAt(i);

                if (Buscado.equals("Bebidas"))
                {
                    cadena="";
                    break;
                }
                else
                {
                    if (apuntador == '$')
                    {
                        cadena="";
                        break;
                    }
                    else
                    {
                        //EJECUCION PRINCIPAL

                        if (apuntador == '#' && !tijera_categoria) {
                            if (i == 0) {
                                indiin = i + 1;
                            }
                        }

                        if (apuntador == '!' && !tijera_categoria) {
                            tijera_categoria = true;
                            tijera_articulo = false;
                            indisup = i;

                            id =id+1;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            Buscado_categoria = Buscado;

                            tag= position + ""+id;
                            this.be = new Button(inflater.getContext());
                            creador= true;
                            this.be.setTag(tag);
                           // this.be.setId(position);
                            this.be.setOnClickListener(MyViewHolder.this);
                        }

                        if (apuntador == '%' && !tijera_articulo) {
                            indisup = i;
                            tijera_articulo = true;
                            tijera_contorno = false;

                            Buscado = cadena.substring(indiin, indisup);

                            indiin = indisup + 1;

                            this.be.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);
                            if (Buscado_categoria.equals("Fondos")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.fondos, null));
                            }
                            if (Buscado_categoria.equals("Entradas")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.entradas, null));
                            }
                            if (Buscado_categoria.equals("Postres")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.postres, null));
                            }
                            be.setText(Buscado);
                            be.setLayoutParams(new LinearLayout.LayoutParams(this.anchomanda, LinearLayout.LayoutParams.WRAP_CONTENT));
                            this.lyocomanda.addView(be);
                        }

                        if (apuntador == '*' && !tijera_contorno) {
                            indisup = i;
                            tijera_cambio = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado.equals("")) {
                                Buscado_contorno = Buscado;
                                this.te = new TextView(inflater.getContext());
                                this.te.setText(Buscado);
                                this.te.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.te.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);

                                if (creador){
                                    this.le = new LinearLayout((inflater.getContext()));
                                    creador=false;
                                }


                                this.le.addView(this.te);

                            }

                        }

                        if (apuntador == '#' && !tijera_cambio) {
                            indisup = i;
                            tijera_contorno = true;
                            tijera_cambio = true;
                            tijera_categoria = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado_contorno.equals("")) {
                                this.le.setLayoutParams(new LinearLayout.LayoutParams(anchomanda, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.le.setOrientation(LinearLayout.VERTICAL);
                                this.le.setBackground(inflater.getContext().getDrawable(customborder));
                                this.lyocomanda.addView(this.le);
                                //cadena ="";
                            }

                        }


                    }//FIN DE LA EJECUCION PRINCIPAL
                }//DEL INICIO DE EJECUCION PRINCIPAL

            }// DEL FOR

        }

    @Override
    public void onClick(View v){
        int position = getAdapterPosition();
        if (v.getTag().equals("primal")){
            mostrarMensaje("borrado" + position);
            removeItem(position);
        }else{
            mostrarMensaje("BOTON NO CONFIGURADO:" + v.getTag().toString());
        }
    }
}
或者也可以在ViewHolder中处理
onCLickListener

MyViewHolder

class MyViewHolder extends RecyclerView.ViewHolder {

        //definicioin de variables

        TextView txt_comanda;
        TextView txt_mesa;
        TextView tid;
        TextView torden;
        TextView te;

        Button btn_cerrar;
        Button be;
        LinearLayout le;
        private LinearLayout lyocomanda;

        private int anchomanda = Math.round(inflater.getContext().getResources().getDimension(R.dimen.parents_size));

        public MyViewHolder(View itemView) {
            super(itemView);

            //inicializacion de controles

            lyocomanda = (LinearLayout) itemView.findViewById(R.id.lyocomanda);

            txt_comanda = (TextView) itemView.findViewById(R.id.txt_comanda);

            txt_mesa = (TextView) itemView.findViewById(R.id.txt_mesa);

            tid = (TextView) itemView.findViewById(R.id.tid);

            torden = (TextView) itemView.findViewById(R.id.torden);

            btn_cerrar = (Button) itemView.findViewWithTag("primal");

        }

        void setData(Comanda comanda) {

            //setear la data

            String cadena= comanda.getOrden();

            Integer tope = cadena.length();

            Boolean tijera_categoria = false;
            Boolean tijera_articulo = true;
            Boolean tijera_contorno = true;
            Boolean tijera_cambio = true;
            boolean creador=false;

            Integer indisup;
            Integer indiin = 0;
            char apuntador;
            String Buscado = "";
            String Buscado_contorno = "";
            String Buscado_categoria = "";
            Integer id = -1;

            String tag="";

            this.txt_comanda.setText(this.position+"");

            this.txt_mesa.setText(comanda.getMesa());

            this.tid.setText(comanda.get_id());

            this.torden.setText(comanda.getOrden());

            for (int i = 0; i < tope ; i++) {


                apuntador =cadena.charAt(i);

                if (Buscado.equals("Bebidas"))
                {
                    cadena="";
                    break;
                }
                else
                {
                    if (apuntador == '$')
                    {
                        cadena="";
                        break;
                    }
                    else
                    {
                        //EJECUCION PRINCIPAL

                        if (apuntador == '#' && !tijera_categoria) {
                            if (i == 0) {
                                indiin = i + 1;
                            }
                        }

                        if (apuntador == '!' && !tijera_categoria) {
                            tijera_categoria = true;
                            tijera_articulo = false;
                            indisup = i;

                            id =id+1;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            Buscado_categoria = Buscado;

                            tag= position + ""+id;
                            this.be = new Button(inflater.getContext());
                            creador= true;
                            this.be.setTag(tag);
                           // this.be.setId(position);
                            this.be.setOnClickListener(MyViewHolder.this);
                        }

                        if (apuntador == '%' && !tijera_articulo) {
                            indisup = i;
                            tijera_articulo = true;
                            tijera_contorno = false;

                            Buscado = cadena.substring(indiin, indisup);

                            indiin = indisup + 1;

                            this.be.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);
                            if (Buscado_categoria.equals("Fondos")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.fondos, null));
                            }
                            if (Buscado_categoria.equals("Entradas")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.entradas, null));
                            }
                            if (Buscado_categoria.equals("Postres")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.postres, null));
                            }
                            be.setText(Buscado);
                            be.setLayoutParams(new LinearLayout.LayoutParams(this.anchomanda, LinearLayout.LayoutParams.WRAP_CONTENT));
                            this.lyocomanda.addView(be);
                        }

                        if (apuntador == '*' && !tijera_contorno) {
                            indisup = i;
                            tijera_cambio = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado.equals("")) {
                                Buscado_contorno = Buscado;
                                this.te = new TextView(inflater.getContext());
                                this.te.setText(Buscado);
                                this.te.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.te.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);

                                if (creador){
                                    this.le = new LinearLayout((inflater.getContext()));
                                    creador=false;
                                }


                                this.le.addView(this.te);

                            }

                        }

                        if (apuntador == '#' && !tijera_cambio) {
                            indisup = i;
                            tijera_contorno = true;
                            tijera_cambio = true;
                            tijera_categoria = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado_contorno.equals("")) {
                                this.le.setLayoutParams(new LinearLayout.LayoutParams(anchomanda, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.le.setOrientation(LinearLayout.VERTICAL);
                                this.le.setBackground(inflater.getContext().getDrawable(customborder));
                                this.lyocomanda.addView(this.le);
                                //cadena ="";
                            }

                        }


                    }//FIN DE LA EJECUCION PRINCIPAL
                }//DEL INICIO DE EJECUCION PRINCIPAL

            }// DEL FOR

        }
...

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {

    Comanda comanda = list_comandas.get(position);

    holder.setData(comanda);

    // set onCLickListener 
    holder.btn_cerrar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            removeItem(holder.getAdapterPosition());
        }
    });

   //  mostrarMensaje("agregado:" + position);

}

...
class MyViewHolder extends RecyclerView.ViewHolder  implements View.OnClickListener{

        //definicioin de variables

        TextView txt_comanda;
        TextView txt_mesa;
        TextView tid;
        TextView torden;
        TextView te;

        Button btn_cerrar;
        Button be;
        LinearLayout le;
        private LinearLayout lyocomanda;

        private int anchomanda = Math.round(inflater.getContext().getResources().getDimension(R.dimen.parents_size));

        public MyViewHolder(View itemView) {
            super(itemView);

            //inicializacion de controles

            lyocomanda = (LinearLayout) itemView.findViewById(R.id.lyocomanda);

            txt_comanda = (TextView) itemView.findViewById(R.id.txt_comanda);

            txt_mesa = (TextView) itemView.findViewById(R.id.txt_mesa);

            tid = (TextView) itemView.findViewById(R.id.tid);

            torden = (TextView) itemView.findViewById(R.id.torden);

            btn_cerrar = (Button) itemView.findViewWithTag("primal");
            btn_cerrar.setOnClickListener(MyViewHolder.this);

        }

        void setData(Comanda comanda) {

            //setear la data

            String cadena= comanda.getOrden();

            Integer tope = cadena.length();

            Boolean tijera_categoria = false;
            Boolean tijera_articulo = true;
            Boolean tijera_contorno = true;
            Boolean tijera_cambio = true;
            boolean creador=false;

            Integer indisup;
            Integer indiin = 0;
            char apuntador;
            String Buscado = "";
            String Buscado_contorno = "";
            String Buscado_categoria = "";
            Integer id = -1;

            String tag="";

            this.txt_comanda.setText(this.position+"");

            this.txt_mesa.setText(comanda.getMesa());

            this.tid.setText(comanda.get_id());

            this.torden.setText(comanda.getOrden());

            for (int i = 0; i < tope ; i++) {


                apuntador =cadena.charAt(i);

                if (Buscado.equals("Bebidas"))
                {
                    cadena="";
                    break;
                }
                else
                {
                    if (apuntador == '$')
                    {
                        cadena="";
                        break;
                    }
                    else
                    {
                        //EJECUCION PRINCIPAL

                        if (apuntador == '#' && !tijera_categoria) {
                            if (i == 0) {
                                indiin = i + 1;
                            }
                        }

                        if (apuntador == '!' && !tijera_categoria) {
                            tijera_categoria = true;
                            tijera_articulo = false;
                            indisup = i;

                            id =id+1;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            Buscado_categoria = Buscado;

                            tag= position + ""+id;
                            this.be = new Button(inflater.getContext());
                            creador= true;
                            this.be.setTag(tag);
                           // this.be.setId(position);
                            this.be.setOnClickListener(MyViewHolder.this);
                        }

                        if (apuntador == '%' && !tijera_articulo) {
                            indisup = i;
                            tijera_articulo = true;
                            tijera_contorno = false;

                            Buscado = cadena.substring(indiin, indisup);

                            indiin = indisup + 1;

                            this.be.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);
                            if (Buscado_categoria.equals("Fondos")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.fondos, null));
                            }
                            if (Buscado_categoria.equals("Entradas")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.entradas, null));
                            }
                            if (Buscado_categoria.equals("Postres")) {
                                this.be.setBackgroundTintList(inflater.getContext().getResources().getColorStateList(R.color.postres, null));
                            }
                            be.setText(Buscado);
                            be.setLayoutParams(new LinearLayout.LayoutParams(this.anchomanda, LinearLayout.LayoutParams.WRAP_CONTENT));
                            this.lyocomanda.addView(be);
                        }

                        if (apuntador == '*' && !tijera_contorno) {
                            indisup = i;
                            tijera_cambio = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado.equals("")) {
                                Buscado_contorno = Buscado;
                                this.te = new TextView(inflater.getContext());
                                this.te.setText(Buscado);
                                this.te.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.te.setTextSize((inflater.getContext().getResources().getDimension(R.dimen.txt_size)) / 2);

                                if (creador){
                                    this.le = new LinearLayout((inflater.getContext()));
                                    creador=false;
                                }


                                this.le.addView(this.te);

                            }

                        }

                        if (apuntador == '#' && !tijera_cambio) {
                            indisup = i;
                            tijera_contorno = true;
                            tijera_cambio = true;
                            tijera_categoria = false;

                            Buscado = cadena.substring(indiin, indisup);
                            indiin = indisup + 1;

                            if (!Buscado_contorno.equals("")) {
                                this.le.setLayoutParams(new LinearLayout.LayoutParams(anchomanda, ViewGroup.LayoutParams.WRAP_CONTENT));
                                this.le.setOrientation(LinearLayout.VERTICAL);
                                this.le.setBackground(inflater.getContext().getDrawable(customborder));
                                this.lyocomanda.addView(this.le);
                                //cadena ="";
                            }

                        }


                    }//FIN DE LA EJECUCION PRINCIPAL
                }//DEL INICIO DE EJECUCION PRINCIPAL

            }// DEL FOR

        }

    @Override
    public void onClick(View v){
        int position = getAdapterPosition();
        if (v.getTag().equals("primal")){
            mostrarMensaje("borrado" + position);
            removeItem(position);
        }else{
            mostrarMensaje("BOTON NO CONFIGURADO:" + v.getTag().toString());
        }
    }
}
类MyViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{ //变量定义 TextView txt_comanda; TextView txt_mesa; 文本视图tid; TextView-torden; TextView te; 按钮btn_cerrar; 按钮是; 线性布局; 私人线路布局lyocomanda; private int anchomanda=Math.round(inflater.getContext().getResources().getDimension(R.dimen.parents_size)); 公共MyViewHolder(查看项目视图){ 超级(项目视图); //管制特别化 lyocomanda=(LinearLayout)itemView.findViewById(R.id.lyocomanda); txt_comanda=(TextView)itemView.findViewById(R.id.txt_comanda); txt_mesa=(TextView)itemView.findviewbyd(R.id.txt_mesa); tid=(TextView)itemView.findViewById(R.id.tid); torden=(TextView)itemView.findViewById(R.id.torden); btn_cerrar=(按钮)itemView.findViewWithTag(“原始”); btn_cerrar.setOnClickListener(MyViewHolder.this); } 无效设置数据(Comanda Comanda){ //塞特拉数据 字符串cadena=comanda.getOrden(); 整数tope=cadena.length(); 布尔tijera_categoria=false; 布尔tijera_articulo=真; 布尔tijera_contorno=true; 布尔值tijera_cambio=true; 布尔creador=false; 整型向上; 整数indin=0; 查阿普坦多尔; 字符串Buscado=“”; 字符串Buscado_contorno=“”; 字符串Buscado_categoria=“”; 整数id=-1; 字符串标签=”; this.txt_comanda.setText(this.position+“”); this.txt_mesa.setText(comanda.getMesa()); this.tid.setText(comanda.get_id()); this.torden.setText(comanda.getOrden()); 对于(int i=0;i