Java Android Studio在sqlite中保存arraylist中的数据会重复第一个字段

Java Android Studio在sqlite中保存arraylist中的数据会重复第一个字段,java,android,android-sqlite,Java,Android,Android Sqlite,数据保存似乎没有问题,但在使用gridView显示数据时,第一个字段“Nombre”会重复自身,而其他文件不会显示相应的数据 我放置了一些Log.d来查看保存列表的内容 它显示了正确的数据 “Negocios”类 public Negocios(int id, String negocio, String categoria, String descripcion, byte[] image) { this.id = id; this.negocio = negocio;

数据保存似乎没有问题,但在使用gridView显示数据时,第一个字段“Nombre”会重复自身,而其他文件不会显示相应的数据

我放置了一些Log.d来查看保存列表的内容

它显示了正确的数据

“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;
}
适配器的类

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;
}
公共类NegociosListAdapter扩展了BaseAdapter{
私人语境;
专用int布局;
私人ArrayList listaNegocios;
public NegociosListAdapter(上下文上下文、int布局、ArrayList listaNegocios){
this.context=上下文;
this.layout=布局;
this.listaNegocios=listaNegocios;
}
@凌驾
public int getCount(){
返回listaNegocios.size();
}
@凌驾
公共对象getItem(int位置){
返回listaNegocios.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
私有类视窗持有者{
图像视图图像视图;
TextView Negocio,分类,描述;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图){
视图行=视图;
ViewHolder=新的ViewHolder();
if(行==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
行=充气机。充气(布局,空);
holder.Negocio=行findviewbyd(R.id.txtNegocio);
holder.Categoria=row.findViewById(R.id.txtCategoria);
holder.Description=row.findViewById(R.id.txtDescription);
holder.imageView=row.findviewbyd(R.id.imgVnego);
row.setTag(支架);
}否则{
holder=(ViewHolder)row.getTag();
}
Negocios Negocios=listaNegocios.get(位置);
holder.Negocio.setText(negocios.getNegocio());
holder.Categoria.setText(negocios.getNegocio());
holder.description.setText(negocios.getNegocio());
字节[]negocioImage=negocios.getImage();
位图位图=位图工厂.decodeByteArray(negocioImage,0,negocioImage.length);
holder.imageView.setImageBitmap(位图);
返回行;
}
以及我用来显示数据和向列表中添加项目的类。添加(new 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();

}
公共类Negocios_列表扩展了AppCompatActivity{
GridView;
数组列表;
NegociosListAdapter=null;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.negocios_列表);
gridView=findViewById(R.id.gridView);
列表=新的ArrayList();
适配器=新的NegociosListAdapter(此,R.layout.negocios_项,列表);
setAdapter(适配器);
//获取数据
Cursor Cursor=RegistroNegocios.sqLiteHelper.getData(“SELECT*FROM NEGOCIOS”);
list.clear();
while(cursor.moveToNext()){
int id=cursor.getInt(0);
String negocio=cursor.getString(1);
stringcategoria=cursor.getString(2);
String description=cursor.getString(3);
字节[]image=cursor.getBlob(4);
Log.d(“Neg”,negocio);
日志d(“类别”,A类);
日志d(“Des”,描述);
添加(新的Negocios(id、negocio、categoria、Description、image));
}
adapter.notifyDataSetChanged();
}

您在Recyclerview中处理数据的方式不正确。

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();

}
更换

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

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

设置充气器。充气(布局、父项、错误)非常感谢,错过了该部分,现在它正确显示了数据