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)
El constructor de productosO es el siguiente:
He seguido los pasos de este tutorial: https://www.youtube.com/watch?v=j1SFFVUt64I
Disculpad las molestias.
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


0