Android Studio guardar los datos de ArrayList en sqlite repite el primer campo

dope:

Los datos parecen guardar sin problemas, pero en el Momento de mostrarlo con un gridview el primer campo "Nombre" se repite y los otros campos campos doesnt mostrar los datos correspondig

Puse un poco Log.d para ver lo que está salvando la list.add (nuevas Negocios ....

y muestra los datos correctos

Esto es lo que muestra la actividad

clase "Negocios"

public Negocios(int id, String negocio, String categoria, String descripcion, byte[] image) {
    this.id = id;
    this.negocio = negocio;
    this.categoria = categoria;
    this.descripcion = descripcion;
    this.image = image;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getNegocio() {
    return negocio;
}

public void setNegocio(String negocio) {
    this.negocio = negocio;
}

public String getCategoria() {
    return categoria;
}

public void setCategoria(String categoria) {
    this.categoria = categoria;
}

public String getDescripcion() {
    return descripcion;
}

public void setDescripcion(String descripcion) {
    this.descripcion = descripcion;
}

public byte[] getImage() {
    return image;
}

public void setImage(byte[] image) {
    this.image = image;
}

Clase del adaptador

public class NegociosListAdapter extends BaseAdapter {

private Context context;
private int layout;
private ArrayList<Negocios> listaNegocios;

public NegociosListAdapter(Context context, int layout, ArrayList<Negocios> listaNegocios) {
    this.context = context;
    this.layout = layout;
    this.listaNegocios = listaNegocios;
}

@Override
public int getCount() {
    return listaNegocios.size();
}

@Override
public Object getItem(int position) {
    return listaNegocios.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

private class ViewHolder{
     ImageView imageView;
     TextView Negocio,Categoria,Descripcion;
}

@Override
public View getView(int position, View view, ViewGroup parent) {

    View row = view;
    ViewHolder holder = new ViewHolder();

    if (row == null){
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(layout,null);

        holder.Negocio = row.findViewById(R.id.txtNegocio);
        holder.Categoria =  row.findViewById(R.id.txtCategoria);
        holder.Descripcion =  row.findViewById(R.id.txtDescripcion);
        holder.imageView =  row.findViewById(R.id.imgVnego);

        row.setTag(holder);

    }else{
        holder = (ViewHolder) row.getTag();
    }

    Negocios negocios = listaNegocios.get(position);

    holder.Negocio.setText(negocios.getNegocio());
    holder.Categoria.setText(negocios.getNegocio());
    holder.Descripcion.setText(negocios.getNegocio());

    byte[] negocioImage = negocios.getImage();
    Bitmap bitmap = BitmapFactory.decodeByteArray(negocioImage,0, negocioImage.length);
    holder.imageView.setImageBitmap(bitmap);

    return row;
}

Y la clase que yo uso para mostrar los datos y añadir elementos a una list.add (nuevas Negocios ...

public class Negocios_list extends AppCompatActivity {

GridView gridView;
ArrayList<Negocios> list;
NegociosListAdapter adapter = null;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.negocios_list);

    gridView = findViewById(R.id.gridView);
    list = new ArrayList<>();
    adapter = new NegociosListAdapter(this, R.layout.negocios_items, list);
    gridView.setAdapter(adapter);

    //get data
    Cursor cursor = RegistroNegocios.sqLiteHelper.getData("SELECT * FROM NEGOCIOS");

    list.clear();

    while (cursor.moveToNext()){
        int id = cursor.getInt(0);
        String negocio = cursor.getString(1);
        String categoria = cursor.getString(2);
        String descripcion = cursor.getString(3);
        byte[] image = cursor.getBlob(4);

        Log.d("Neg", negocio);
        Log.d("Cat", categoria);
        Log.d("Des", descripcion);

        list.add(new Negocios(id, negocio, categoria, descripcion, image));



    }



    adapter.notifyDataSetChanged();

}
Usman la Victoria:

Que se trata de datos en Recyclerview incorrectamente.

Reemplazar

holder.Negocio.setText(negocios.getNegocio());
holder.Categoria.setText(negocios.getNegocio());
holder.Descripcion.setText(negocios.getNegocio());

Con

holder.Negocio.setText(negocios.getNegocio());
holder.Categoria.setText(negocios.getcategoria());
holder.Descripcion.setText(negocios.getdescription());

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=385597&siteId=1
Recomendado
Clasificación