Espero puedan ayudarme, tengo un RecyclerView que muestra una relacion(Descripcion e cantidad), hasta aqui todo lo muestra bien, el problema es que le agregue que cuando la cantidad sea cero, el numero se muestre en rojo, cuando se muestr la actividad si hay cero lo muestra en rojo, pero si el recycler view tiene 20 item por ejmplo y hay que desplazarse hacia abajo, y subo y bajo y subo, veo ahora que varias cantidades estan en rojo sin ser cero, no se porque pasa eso: parte de mi codigo del Adapter:
Código:
y la clase viewHolder:@Override public void onBindViewHolder(RVStockMaterialesAdapterViewHolder holder, int position) { final ListaStockMateriales stockMateriales = ArrayListStockMateriales.get(position); /*GUARDAMOS POSICION*/ holder.itemView.setTag(position); /*AGREGAMOS DATO A LOS CONTROLES*/ holder.lblDescripcion.setText(stockMateriales.getDescripcion()); /*VERIFICAMOS SI EL ITEM ES SERIADO*/ if (!stockMateriales.getInd_SB().equals("S")) { holder.imagenSubMenu.setVisibility(View.INVISIBLE); } else { holder.imagenSubMenu.setVisibility(View.VISIBLE); } /*SI LA CANTIDAD ES CERO O MENOR COLOCAMOS DE COLOR ROJO*/ if (Float.parseFloat(holder.lblCantidad.getText().toString()) <= 0) { holder.lblCantidad.setTextColor(Color.parseColor("#FF0000")); } }
Código:
Hace tiempo tenia un proyecto igual con recyclerview y era una lista que contaba con un check y me sucedia lo mismo, seleccionaba un item en el check y al bajar y subir bajar y subir los check aparecian y varios items que no habia seleciconado. public class RVStockMaterialesAdapterViewHolder extends RecyclerView.ViewHolder implements RecyclerView.OnClickListener { TextView lblDescripcion, lblCantidad, lblDetalleSeries; LinearLayout linear; ImageView imagenSubMenu; boolean abierto; public RVStockMaterialesAdapterViewHolder(View itemView) { super(itemView); lblDescripcion = (TextView) itemView.findViewById(R.id.lblDescripcion_StockMateriales); lblCantidad = (TextView) itemView.findViewById(R.id.lblCantidad_StockMateriales); linear = (LinearLayout) itemView.findViewById(R.id.linearInvisible); imagenSubMenu = (ImageView) itemView.findViewById(R.id.imagenSubMenu_StockMateriales); lblDetalleSeries = (TextView) itemView.findViewById(R.id.lblDetalleSeries_StockMateriales); abierto = false; itemView.setOnClickListener(this); } @Override public void onClick(View v) { int p = (int) v.getTag(); if (MostrarStock_AddMat == true) { /*SE ESTA LLAMANDO PARA SOLO MOSTRAR EL STOCK*/ if (ArrayListStockMateriales.get(p).getInd_SB().equals("S")) { ... } else { if (InterfaceAdaptderMateriales != null) InterfaceAdaptderMateriales.onClickItem(ArrayListStockMateriales.get(p), p); } } }