Android - Problema para mostrar el contenido de una BD SQLite

 
Vista:
sin imagen de perfil
Val: 14
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

Problema para mostrar el contenido de una BD SQLite

Publicado por SoCu (9 intervenciones) el 24/02/2020 19:46:11
Hola buenas tardes, tengo un problemilla para mostrar una ficha/contenido después de seleccionarlo desde un listado.

Cuando se muestra el contenido de la BD y pulso en cualquiera de los elementos, me muestra sin problemas una ficha con la información de ese elemento.

32ijq

En el campo “Grupo” tengo diferentes grupos (ahora solo tengo dos, Grupo 1 y Grupo 2) para poder mostrar un listado con un grupo determinado.

Ahora quiero que me muestre un listado con los elementos que hay en el Grupo 1, y los muestra bien.

32ijr

El problema viene a la hora de mostrar la ficha/contenido con la información de uno de sus elementos, por ejemplo, si pulso en el segundo elemento, no muestra la información de ese ítem que he pulsado, si no que muestra la que estaba en su momento en el primer listado.

32ijs

Si alguien me puede ayudar se lo agradecería, no se si con este código que os pongo es suficiente, si no me lo decís y os paso el código completo.

Tengo creada esta base de datos:

1
2
3
4
5
6
7
8
9
private static final String TABLA_NOTAS =
    "CREATE TABLE contactos " +
            "(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
            " nombre VARCHAR(100), direccion VARCHAR(100)," +
            " movil VARCHAR(100), movil_2 VARCHAR(100)," +
            " fijo VARCHAR(100), fijo_2 VARCHAR(100)," +
            " fax VARCHAR(100), fax_2 VARCHAR(100)," +
            " grupo VARCHAR(100), puesto VARCHAR(100)," +
            " mail VARCHAR(100), mail_2 VARCHAR(100));";

Este es el código muestro los que están en el Grupo 1:

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
// Ordena por Grupo
public Cursor recuperaContactosGrupo_1() {
 
    SQLiteDatabase db = getWritableDatabase();
 
    SQLiteDatabase db = getReadableDatabase();
 
    String[] valores_recuperar = {"_id", "nombre", "direccion", "movil", "movil_2", "fijo", "fijo_2", "mail", "mail_2", "fax", "fax_2", "grupo", "estacion" };
 
    String[] args = new String[] {"Grupo 1"};
 
    Cursor c = db.query("contactos", valores_recuperar, "grupo=?", args, null, null, "nombre ASC",null);
 
    return c;
 
}
 
 
// Si pulsamos el un item de la Lista,
@Override
protected void onListItemClick(ListView lv, View view, int posicion, long id) {
    iDAct= ids[posicion];
    muestraDatosenBtSh();
}
 
 
// Funcion para ordenar los contactos del Grupo 1
public void ordenaPorGrupo_1(View v){
    adaptador = new Adaptador(this, bdAgenda.recuperaContactosGrupo_1());
    setListAdapter(adaptador);
    adaptador.notifyDataSetChanged();
    setSnackBar(mLayout,getString(R.string.tablaorden3));

Con este muestro la ficha, y oculto un FloatingActionButton y muestro una serie botones para hacer una llamada.

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
// Abre el Lay del BotomSheet con los datos del usuario
private void muestraDatosenBtSh(){
 
    final Contacto contacto;
 
    bSB.setState(BottomSheetBehavior.STATE_EXPANDED);
 
    contacto= bdAgenda.recuperarContacto(iDAct);
 
    btsheet_image_foto.setImageBitmap(recogerImagen(contacto.getNombre()+".png"));
    btsheet_nombre.setText(contacto.getNombre());
    btsheet_movil.setText(contacto.getMovil());
    btsheet_movil_2.setText(contacto.getMovil_2());
    btsheet_fijo.setText(contacto.getFijo());
    btsheet_fijo_2.setText(contacto.getFijo_2());
 
    bSB.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
 
         @Override
        public void onStateChanged(@NonNull View bottomSheet, int newState) {
            if (newState == BottomSheetBehavior.STATE_EXPANDED) {
                fab.hide();
            }
            if (newState == BottomSheetBehavior.STATE_COLLAPSED) {
                fab.show();
            }
        }
 
 
        @Override
        public void onSlide(@NonNull View bottomSheet, float slideOffset) {}
 
    });
 
    // Cierra el btsheep cuando pulsamos el boton
    btsheet_low.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            bSB.setState(BottomSheetBehavior.STATE_COLLAPSED);
        }
    });
 
       ....
       ....
       ....
       ....
       ....
}



Gracias anticipadas.
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
sin imagen de perfil
Val: 14
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

Problema para mostrar el contenido de una BD SQLite

Publicado por SoCu (9 intervenciones) el 27/02/2020 15:27:39
Hola, no hay nadie que maneje base de datos para ver si se puede resolver este problema ?


Salu2.
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