Android - SQLite a ListView ERROR

 
Vista:

SQLite a ListView ERROR

Publicado por Joan (1 intervención) el 03/04/2020 19:13:52
Buenas tardes, estoy intentando hacer un proyecto y necesito pasar los datos de una base de datos SQLite a un ListView.
Me da un error que parece ser de constructor pero al intentar "arreglarlo" sigue sin funcionar.
El codigo que tengo es el siguiente. (en negrita donde marca el error)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.example.shoppingmap;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
 
import java.util.ArrayList;
 
public class MainActivity extends AppCompatActivity {
    private ListView listviewListaProductos;
    private ArrayList<String> ArrayProductos;
    private ArrayList<productosO> listaproductos;
    private SearchView buscador;
    BDProductos conn;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        conn= new BDProductos(getApplicationContext(),"productos", null, 1);
        buscador = findViewById(R.id.idbuscador);
 
        listviewListaProductos = (ListView)findViewById(R.id.lvListaProductos);
 
 
        consultaProductos();
 
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ArrayProductos);
        listviewListaProductos.setAdapter(adapter);
 
        buscador.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String text) {
                return false;
            }
            @Override
            public boolean onQueryTextChange(String text) {
                adapter.getFilter().filter(text);
                return false;
            }
        });
 
    }
 
    private void consultaProductos() {
        SQLiteDatabase db = conn.getReadableDatabase();
        productosO producto =null;
        listaproductos = new ArrayList<productosO>();
        Cursor cursor = db.rawQuery("SELECT * FROM productos",null);
 
        while (cursor.moveToNext()){
            producto = new productosO();
            producto.setId(cursor.getInt(0));
            producto.setNombre(cursor.getString(1));
            producto.setPrecio(cursor.getDouble(2));
            producto.setSeccion(cursor.getInt(3));
            producto.setSubseccion(cursor.getInt(4));
 
            listaproductos.add(producto);
 
        }
        obtenerlista();
 
    }
 
    private void obtenerlista() {
        ArrayProductos = new ArrayList<String>();
        for (int i=0; i<listaproductos.size(); i++){
            ArrayProductos.add(listaproductos.get(i).getNombre());
        }
    }
}


El constructor de productosO es el siguiente:
1
2
3
4
5
6
7
public productosO(Integer id, String nombre, double precio, int seccion, int subseccion) {
        this.id = id;
        this.nombre = nombre;
        this.precio = precio;
        this.seccion = seccion;
        this.subseccion = subseccion;
}

He seguido los pasos de este tutorial: https://www.youtube.com/watch?v=j1SFFVUt64I
Disculpad las molestias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 466
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

SQLite a ListView ERROR

Publicado por Francisco (358 intervenciones) el 03/04/2020 21:04:34
Creo que debes declarar producto;

productosO producto = new productosO();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 466
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

SQLite a ListView ERROR

Publicado por Francisco (358 intervenciones) el 04/04/2020 18:13:04
Te marca un error porque el contructor de la clase productos te pide estos parametros
public productosO(Integer id, String nombre, double precio, int seccion, int subseccion)
deberias crear un constructor vacio para esa clase o mandarle los parametros que te pide.


1
2
3
4
5
6
7
8
9
10
11
12
public productosO(Integer id, String nombre, double precio, int seccion, int subseccion) {
        this.id = id;
        this.nombre = nombre;
        this.precio = precio;
        this.seccion = seccion;
        this.subseccion = subseccion;
}
 
public productosO(I) {
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar