Skip to content

Instantly share code, notes, and snippets.

@EleLawliet
Last active February 5, 2018 21:17
Show Gist options
  • Save EleLawliet/62da35ff23bddc62a27b4b461e1c1bf2 to your computer and use it in GitHub Desktop.
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.
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();
}
}
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