Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 09/07/14, 23:32:38
Avatar de Bongiovi
Bongiovi Bongiovi no está en línea
Miembro del foro
Mensajes: 186
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
SobreSQLite y SharedPreferences

Tengo una base de datos SQLite estática donde leo ciertos campos y los muestro. Con algo de código mediante el evento OnClick de un botón en pantalla, guardo en ciertas variables la tabla, fila y celda mostradas en esa ejecución. Mi intención era guardar estos valores para rellenar otra Activity mediante la lectura de la base de datos con las variables guardadas anteriormente (tabla, fila y celda).

No encuentro una solución para hacer esto, puesto que pensé en SharedPreferences pero no se ajusta a lo que busco. Hay alguna otra opción, además de crear otra tabla en la base de datos que ya tengo? (Esta opción me parecía algo engorrosa a priori, pero tal vez sea la mejor)

Un saludo y gracias.

Última edición por Bongiovi Día 12/07/14 a las 20:26:57
Responder Con Cita


  #2  
Viejo 10/07/14, 08:00:29
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Puedes pasarle los parámetros que quieras a la segunda actividad con el Intent.

Si lo que quieres es guardar los datos para distintas ejecuciones, entonces sí hace falta almacenamiento persistente, con las preferencias va sobrado.
Responder Con Cita
  #3  
Viejo 10/07/14, 11:09:16
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
Si lo que quieres es que el usuario rellene unos campos, guardarlos en la BD y a la vez que se abra una nueva activity con los datos rellenados, lo más facil es pasarle los parámetros a la nueva Activity mediante un Intent, como te ha dicho mocelet

Código:
Intent i = new Intent(this, Activity2.class);

i.putExtra("CLAVE", valor); //Siendo valor un String, Int... o incluso un Parcelable

startActivity(i);
Y luego en la Activity 2, en el onCreate:

Código:
Bundle extras = getIntent().getExtras();
if (extras != null) {
    X nombreVariable = extras.getX("CLAVE"); //Siendo X String, int... o incluso un Parcelable
}
Responder Con Cita
  #4  
Viejo 10/07/14, 11:35:29
Avatar de Bongiovi
Bongiovi Bongiovi no está en línea
Miembro del foro
Mensajes: 186
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
Gracias por vuestras respuestas. El Intent no me sirve, puesto que los datos tienen que almacenarse de manera persistente.

En cuanto a SharedPreferences, tampoco me funcionaba por lo siguiente: asocié al evento de un botón colocar las variables tabla, fila y celda mediante el método putString (prefs.putString(key, value)), el problema es que ante distintas ejecuciones del programa no puedo guardar todos los datos, puesto que se sobreescriben dentro de la key que paso al método putString.

No se si me he explicado

Gracias y un saludo.
Responder Con Cita
  #5  
Viejo 10/07/14, 12:12:59
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Si tienes que almacenar varias "tabla, fila y celda" y son indefinidos tienes que ir a morir a SQLite.
Responder Con Cita
  #6  
Viejo 12/07/14, 00:04:04
Avatar de Bongiovi
Bongiovi Bongiovi no está en línea
Miembro del foro
Mensajes: 186
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Si tienes que almacenar varias "tabla, fila y celda" y son indefinidos tienes que ir a morir a SQLite.
Reutilizo este post para preguntar sobre un error que tengo tras usar SQLite para lo comentado anteriormente.
Código:
        tabla = new String[numFilas];
        tablaFila = new String[numFilas];
        celda = new String[numFilas];
        
        for (int i=1 ; i<=numFilas ; i++)
        {
            fila = miBBDDHelper.leerBBDD("DoneBin", i);
            tabla[i-1] = fila[0];
            tablaFila[i-1] = fila[1];
            celda[i-1] = fila[2];
        }
El código anterior está pensado para rellenar los Arrays "tabla", "tablaFila" y "celda" con los datos de una BBDD, dentro de la tabla "DoneBin". El método "leerBBDD(String, int)" devuelve un StringArray con los campos de la fila de mi BBDD (los parámetros que se le pasan son la tabla y la fila de la tabla).

El problema es que "tabla", "tablaFila" y "celda" se rellenan con la última fila de la tabla "DoneBin". Es decir, si "DoneBin" tiene 12 filas, los 3 Arrays tienen 12 elementos iguales correspondientes a las 3 columnas de la tabla.

Me trae loco esto, ¿dónde está el fallo?

Un saludo.

EDITO.

El problema estaba en la definición del método "leerBBDD(String, int)". Doy por resuelto el post, muchas gracias ;)

Última edición por Bongiovi Día 12/07/14 a las 20:26:18
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 06:55:55 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007