Last active
February 5, 2018 21:17
-
-
Save EleLawliet/62da35ff23bddc62a27b4b461e1c1bf2 to your computer and use it in GitHub Desktop.
Tengo un pequeño error con este adaptador y la verdad no se que puede estar mal, si tendrían la amabilidad de ayudarme, les quedo totalmente agradecido.El error es que al llenar el EditText y hacer scroll en la lista, el dato antes llenado se duplica para todos los items de la lista.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ec.telconet.mobile.telcos.operaciones.adapters; | |
import android.app.Activity; | |
import android.content.Context; | |
import android.support.v7.widget.RecyclerView; | |
import android.text.Editable; | |
import android.text.TextWatcher; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.EditText; | |
import android.widget.TextView; | |
import android.widget.Toast; | |
import java.util.ArrayList; | |
import java.util.List; | |
import butterknife.ButterKnife; | |
import ec.telconet.mobile.telcos.operaciones.R; | |
import ec.telconet.mobile.telcos.operaciones.activities.MaterialesActivity; | |
import ec.telconet.mobile.telcos.operaciones.activities.RutaFibraActivity; | |
import ec.telconet.mobile.telcos.operaciones.activities.TareaDetalleActivity; | |
import ec.telconet.mobile.telcos.operaciones.models.response.MaterialesResponse; | |
/** | |
* Created by Junior on 07/09/2017. | |
*/ | |
public class MaterialesAdapterLV extends RecyclerView.Adapter<MaterialesAdapterLV.DeveloperViewHolder> { | |
private Activity objContext; | |
private List<MaterialesResponse> objMateriales; | |
//String[] texts = new String[dataSize]; | |
public static class DeveloperViewHolder extends RecyclerView.ViewHolder { | |
TextView tvMateriales; | |
TextView tvAsignada ; | |
TextView tvExcedente ; | |
EditText etUsado; | |
DeveloperViewHolder(final View itemView) { | |
super(itemView); | |
tvMateriales = itemView.findViewById(R.id.tv_materiales); | |
tvAsignada = itemView.findViewById(R.id.tv_cantAsignada); | |
tvExcedente = itemView.findViewById(R.id.tv_cantExcedente); | |
etUsado = itemView.findViewById(R.id.et_cantUsada); | |
} | |
} | |
@Override | |
public void onBindViewHolder(DeveloperViewHolder objDeveloperViewHolder, int i) { | |
final MaterialesResponse objMaterial = objMateriales.get(i); | |
// if(objMaterial != null && (objMaterial instanceof MaterialesResponse)){ | |
// // update the specific view | |
// | |
// }else{ | |
// // I have already overridden the other onBindViewHolder(ViewHolder, int) | |
// // The method with 3 arguments is being called before the method with 2 args. | |
// // so calling super will call that method with 2 arguments. | |
// super.onBindViewHolder(objDeveloperViewHolder,i, (List<Object>) objMateriales.get(i)); | |
// } | |
objDeveloperViewHolder.tvMateriales.setText(objMaterial.getNombreMaterial()); | |
objDeveloperViewHolder.tvAsignada.setText(String.valueOf(objMaterial.getCantidadCliente())); | |
objDeveloperViewHolder.tvExcedente.setText(String.valueOf(objMaterial.getCantidadExcedente())); | |
objDeveloperViewHolder.itemView.setTag(objMaterial); | |
if(objMaterial.getCantidadUsada()==0){ | |
objDeveloperViewHolder.etUsado.setText(""); | |
}else { | |
objDeveloperViewHolder.etUsado.setText(String.valueOf(objMaterial.getCantidadUsada())); | |
} | |
objDeveloperViewHolder.etUsado.addTextChangedListener(new TextWatcher() { | |
@Override | |
public void beforeTextChanged(CharSequence s, int start, int count, int after) { | |
} | |
@Override | |
public void onTextChanged(CharSequence s, int start, int before, int count) { | |
} | |
@Override | |
public void afterTextChanged(Editable s) { | |
if(s.length()!=0){ | |
objMaterial.setCantidadUsada(Long.valueOf(s.toString())); | |
} | |
} | |
}); | |
// objDeveloperViewHolder.etUsado.setText(String.valueOf(objMaterial.getCantidadUsada())); | |
} | |
public MaterialesAdapterLV(List<MaterialesResponse> objMateriales, Activity context) { | |
this.objContext = context; | |
this.objMateriales = objMateriales; | |
} | |
@Override | |
public DeveloperViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { | |
View rowView = LayoutInflater.from (viewGroup.getContext()) | |
.inflate(R.layout.item_material, viewGroup, false); | |
return new DeveloperViewHolder(rowView); | |
} | |
@Override | |
public int getItemCount() { | |
return objMateriales.size(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ec.telconet.mobile.telcos.operaciones.models.response; | |
import com.google.gson.annotations.Expose; | |
import com.google.gson.annotations.SerializedName; | |
public class MaterialesResponse extends ListaMaterialesResponse { | |
@SerializedName("id_detalle_solicitud") | |
@Expose | |
private long idDetalleSolicitud; | |
@SerializedName("id_detalle_sol_material") | |
@Expose | |
private long idDetalleSolMaterial; | |
@SerializedName("id_detalle") | |
@Expose | |
private long idDetalle; | |
@SerializedName("id_proceso") | |
@Expose | |
private long idProceso; | |
@SerializedName("id_tarea") | |
@Expose | |
private long idTarea; | |
@SerializedName("id_tarea_material") | |
@Expose | |
private long idTareaMaterial; | |
@SerializedName("cod_material") | |
@Expose | |
private String codMaterial; | |
@SerializedName("nombre_proceso") | |
@Expose | |
private String nombreProceso; | |
@SerializedName("nombre_tarea") | |
@Expose | |
private String nombreTarea; | |
@SerializedName("nombre_material") | |
@Expose | |
private String nombreMaterial; | |
@SerializedName("subgrupo_material") | |
@Expose | |
private String subgrupoMaterial; | |
@SerializedName("costo_material") | |
@Expose | |
private String costoMaterial; | |
@SerializedName("precio_venta_material") | |
@Expose | |
private String precioVentaMaterial; | |
@SerializedName("cantidad_empresa") | |
@Expose | |
private long cantidadEmpresa; | |
@SerializedName("cantidad_estimada") | |
@Expose | |
private long cantidadEstimada; | |
@SerializedName("cantidad_cliente") | |
@Expose | |
private long cantidadCliente; | |
@SerializedName("cantidad_usada") | |
@Expose | |
private long cantidadUsada; | |
@SerializedName("cantidad_excedente") | |
@Expose | |
private long cantidadExcedente; | |
@SerializedName("facturar") | |
@Expose | |
private boolean facturar; | |
/** | |
* No args constructor for use in serialization | |
* | |
*/ | |
public MaterialesResponse() { | |
} | |
/** | |
* | |
* @param idTarea | |
* @param idDetalleSolicitud | |
* @param idProceso | |
* @param cantidadEstimada | |
* @param idTareaMaterial | |
* @param subgrupoMaterial | |
* @param codMaterial | |
* @param nombreMaterial | |
* @param cantidadCliente | |
* @param cantidadEmpresa | |
* @param costoMaterial | |
* @param idDetalle | |
* @param cantidadExcedente | |
* @param cantidadUsada | |
* @param nombreProceso | |
* @param facturar | |
* @param idDetalleSolMaterial | |
* @param nombreTarea | |
* @param precioVentaMaterial | |
*/ | |
public MaterialesResponse(long idDetalleSolicitud, long idDetalleSolMaterial, long idDetalle, long idProceso, long idTarea, long idTareaMaterial, String codMaterial, String nombreProceso, String nombreTarea, String nombreMaterial, String subgrupoMaterial, String costoMaterial, String precioVentaMaterial, long cantidadEmpresa, long cantidadEstimada, long cantidadCliente, long cantidadUsada, long cantidadExcedente, boolean facturar) { | |
super(); | |
this.idDetalleSolicitud = idDetalleSolicitud; | |
this.idDetalleSolMaterial = idDetalleSolMaterial; | |
this.idDetalle = idDetalle; | |
this.idProceso = idProceso; | |
this.idTarea = idTarea; | |
this.idTareaMaterial = idTareaMaterial; | |
this.codMaterial = codMaterial; | |
this.nombreProceso = nombreProceso; | |
this.nombreTarea = nombreTarea; | |
this.nombreMaterial = nombreMaterial; | |
this.subgrupoMaterial = subgrupoMaterial; | |
this.costoMaterial = costoMaterial; | |
this.precioVentaMaterial = precioVentaMaterial; | |
this.cantidadEmpresa = cantidadEmpresa; | |
this.cantidadEstimada = cantidadEstimada; | |
this.cantidadCliente = cantidadCliente; | |
this.cantidadUsada = cantidadUsada; | |
this.cantidadExcedente = cantidadExcedente; | |
this.facturar = facturar; | |
} | |
public long getIdDetalleSolicitud() { | |
return idDetalleSolicitud; | |
} | |
public void setIdDetalleSolicitud(long idDetalleSolicitud) { | |
this.idDetalleSolicitud = idDetalleSolicitud; | |
} | |
public ListaMaterialesResponse withIdDetalleSolicitud(long idDetalleSolicitud) { | |
this.idDetalleSolicitud = idDetalleSolicitud; | |
return this; | |
} | |
public long getIdDetalleSolMaterial() { | |
return idDetalleSolMaterial; | |
} | |
public void setIdDetalleSolMaterial(long idDetalleSolMaterial) { | |
this.idDetalleSolMaterial = idDetalleSolMaterial; | |
} | |
public ListaMaterialesResponse withIdDetalleSolMaterial(long idDetalleSolMaterial) { | |
this.idDetalleSolMaterial = idDetalleSolMaterial; | |
return this; | |
} | |
public long getIdDetalle() { | |
return idDetalle; | |
} | |
public void setIdDetalle(long idDetalle) { | |
this.idDetalle = idDetalle; | |
} | |
public ListaMaterialesResponse withIdDetalle(long idDetalle) { | |
this.idDetalle = idDetalle; | |
return this; | |
} | |
public long getIdProceso() { | |
return idProceso; | |
} | |
public void setIdProceso(long idProceso) { | |
this.idProceso = idProceso; | |
} | |
public ListaMaterialesResponse withIdProceso(long idProceso) { | |
this.idProceso = idProceso; | |
return this; | |
} | |
public long getIdTarea() { | |
return idTarea; | |
} | |
public void setIdTarea(long idTarea) { | |
this.idTarea = idTarea; | |
} | |
public ListaMaterialesResponse withIdTarea(long idTarea) { | |
this.idTarea = idTarea; | |
return this; | |
} | |
public long getIdTareaMaterial() { | |
return idTareaMaterial; | |
} | |
public void setIdTareaMaterial(long idTareaMaterial) { | |
this.idTareaMaterial = idTareaMaterial; | |
} | |
public ListaMaterialesResponse withIdTareaMaterial(long idTareaMaterial) { | |
this.idTareaMaterial = idTareaMaterial; | |
return this; | |
} | |
public String getCodMaterial() { | |
return codMaterial; | |
} | |
public void setCodMaterial(String codMaterial) { | |
this.codMaterial = codMaterial; | |
} | |
public ListaMaterialesResponse withCodMaterial(String codMaterial) { | |
this.codMaterial = codMaterial; | |
return this; | |
} | |
public String getNombreProceso() { | |
return nombreProceso; | |
} | |
public void setNombreProceso(String nombreProceso) { | |
this.nombreProceso = nombreProceso; | |
} | |
public ListaMaterialesResponse withNombreProceso(String nombreProceso) { | |
this.nombreProceso = nombreProceso; | |
return this; | |
} | |
public String getNombreTarea() { | |
return nombreTarea; | |
} | |
public void setNombreTarea(String nombreTarea) { | |
this.nombreTarea = nombreTarea; | |
} | |
public ListaMaterialesResponse withNombreTarea(String nombreTarea) { | |
this.nombreTarea = nombreTarea; | |
return this; | |
} | |
public String getNombreMaterial() { | |
return nombreMaterial; | |
} | |
public void setNombreMaterial(String nombreMaterial) { | |
this.nombreMaterial = nombreMaterial; | |
} | |
public ListaMaterialesResponse withNombreMaterial(String nombreMaterial) { | |
this.nombreMaterial = nombreMaterial; | |
return this; | |
} | |
public String getSubgrupoMaterial() { | |
return subgrupoMaterial; | |
} | |
public void setSubgrupoMaterial(String subgrupoMaterial) { | |
this.subgrupoMaterial = subgrupoMaterial; | |
} | |
public ListaMaterialesResponse withSubgrupoMaterial(String subgrupoMaterial) { | |
this.subgrupoMaterial = subgrupoMaterial; | |
return this; | |
} | |
public String getCostoMaterial() { | |
return costoMaterial; | |
} | |
public void setCostoMaterial(String costoMaterial) { | |
this.costoMaterial = costoMaterial; | |
} | |
public ListaMaterialesResponse withCostoMaterial(String costoMaterial) { | |
this.costoMaterial = costoMaterial; | |
return this; | |
} | |
public String getPrecioVentaMaterial() { | |
return precioVentaMaterial; | |
} | |
public void setPrecioVentaMaterial(String precioVentaMaterial) { | |
this.precioVentaMaterial = precioVentaMaterial; | |
} | |
public ListaMaterialesResponse withPrecioVentaMaterial(String precioVentaMaterial) { | |
this.precioVentaMaterial = precioVentaMaterial; | |
return this; | |
} | |
public long getCantidadEmpresa() { | |
return cantidadEmpresa; | |
} | |
public void setCantidadEmpresa(long cantidadEmpresa) { | |
this.cantidadEmpresa = cantidadEmpresa; | |
} | |
public ListaMaterialesResponse withCantidadEmpresa(long cantidadEmpresa) { | |
this.cantidadEmpresa = cantidadEmpresa; | |
return this; | |
} | |
public long getCantidadEstimada() { | |
return cantidadEstimada; | |
} | |
public void setCantidadEstimada(long cantidadEstimada) { | |
this.cantidadEstimada = cantidadEstimada; | |
} | |
public ListaMaterialesResponse withCantidadEstimada(long cantidadEstimada) { | |
this.cantidadEstimada = cantidadEstimada; | |
return this; | |
} | |
public long getCantidadCliente() { | |
return cantidadCliente; | |
} | |
public void setCantidadCliente(long cantidadCliente) { | |
this.cantidadCliente = cantidadCliente; | |
} | |
public ListaMaterialesResponse withCantidadCliente(long cantidadCliente) { | |
this.cantidadCliente = cantidadCliente; | |
return this; | |
} | |
public long getCantidadUsada() { | |
return cantidadUsada; | |
} | |
public void setCantidadUsada(long cantidadUsada) { | |
this.cantidadUsada = cantidadUsada; | |
} | |
public ListaMaterialesResponse withCantidadUsada(long cantidadUsada) { | |
this.cantidadUsada = cantidadUsada; | |
return this; | |
} | |
public long getCantidadExcedente() { | |
return cantidadExcedente; | |
} | |
public void setCantidadExcedente(long cantidadExcedente) { | |
this.cantidadExcedente = cantidadExcedente; | |
} | |
public ListaMaterialesResponse withCantidadExcedente(long cantidadExcedente) { | |
this.cantidadExcedente = cantidadExcedente; | |
return this; | |
} | |
public boolean isFacturar() { | |
return facturar; | |
} | |
public void setFacturar(boolean facturar) { | |
this.facturar = facturar; | |
} | |
public ListaMaterialesResponse withFacturar(boolean facturar) { | |
this.facturar = facturar; | |
return this; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment