Hola comunidad, soy Eugenio, autodidacta y fan de este mundillo.. gracias por tanta ayuda, ya me he leido el 90% de posteos sobre listas y TinyDB, he creado una lista de reproduccion de YT con tropecientos video referent a esto, hice y deshice cuanto codigo encontre, pero no logro comprender como funciona el acceso a los datos de la TinyDB y el uso de las listas para su carga y lectura.
En resumen, mi problema es la carga, manejo y acceso a los datos de la base de datos
App a construir
La app debe reproducir un archivo MP3 especifico cuando se encuentra dentro de un radio a partir del punto seleccionado en el mapa. Cada archivo MP3 (uno distinto al otro) está relacionado a una geoposicion
En la app, el usuario es capaz de cargar, tantos registros como desee, especificando: "nombre de locacion", "latitud", "longitud" desde un TAP en el mapa y un "archivo Mp3 de la memoria"
Variable utilizadas:
El sistema almacena los valores en una tinyDB para luego:
Visualizarlos en una listPicker, para su seleccion (borra o editar)
Eliminar registro seleccionado desde listpicker
Reescribir un registro (editarlo) seleccionado desde la lispicker
Utilizar los valores almacenados para realizar funciones condicionadas como reproducir el archivo MP3 relacionado a la ubicacion cercana a la guardada.
Temas resueltos
Entorno visual
Screens
Menues
Seleccion de posicion con TAP en el mapa
Carga de datos en la base de datos (pero no se cual es la mejor manera)
GeoFence
Problema que me tiene desvelado
Carga de datos en la tinyDB (he cargado los datos de al menos 10 maneras diferentes sin exito) ya que a veces me aparecen separados netre (" "), y otras entre ( ) y otras entre [( ]), o me aparece algo asi:
( [ ] (((song1.mp3, /storage/emulated/0/Tracks/song1.mp3, 40.473635, -2.56354))) , simplemente en una sola linea todos los datos de los registros almacenados, uno a continuacion de otro con un unico ID.-.
Acceso a esa informacion (necesito acceder a cada dato del registro en referencia a un mismo identificador)
No logro relizar esta funcion
Algunos ejemplo de carga de datos fallidos a fines ilustrativos,
Hay mucho bloque para depuracion, que muestran datos para ver que está pasando, Cuando funciona una cosa, no logro acceder a otros datos, y asi..
Fallo especifco (o mejor dicho, ignorancia de mi prte)
si mi tinyDB contiene:
id "monasterio" : (song1.mp3, /storage/emulated/0/Tracks/song1.mp3, 40.473635, -2.56354)
id "Puerto" : (song2.mp3, /storage/emulated/0/Tracks/song2.mp3, 40.5765, -2.98876)
Necesito lograr lo siguiente;
Crear un conjunto de bloques que,. me permitan extraer por ejemplo, el elemento 1 del registro id = "Monasterio", es decir,
lograr mostrar donde yo lo necesite "song1.mp3" y solo eso
o por ejemplo,
Cuando ha llegado a una poscion cercana a una de las almacenadas, mantener el id correspondiente y luego con ese id acceder a la ruta del archivo mp3 correspondiente y asignarselo al reproductor para que corra el play
Si posicion actual esta dentro del radio almacenado en el registro id=",Puerto"entonces {
acceder a la posicion 2 del registro id "puerto" y asignarlo al reproductor
acceder a la posicion 1 del registro id: "Puerto" y mostrarlo en un cuadro de texto "posicion actual"
}
3 Preguntas especificas
Cual es la combinacion de bloques pra guardar la info correctamente en TinyDB, de tal modo que el contenido de la variable "idParada" sea el identificador de los datos referidos a ese dato
Cual es la combnacion de bloques que me permitirian obtener y mostrar en un cuadro de texto, un dato contenido dentro de un registro dentro de la lista de datos de TinyDB (id="Puerto", posicion 3)
Cuando muestre la lista en el listpicker, como almceno el valor correspondiente a idParada al clicar en un elemento del picklister, a fin de acceder a los valores del registro correspondiente a ese id
Mi deseo
Que existiese un bloque de TinyDB con las siguientes caracteristicas:
Leer valor dentro de TinyDB1
-> identificador ( aqui cargar el id del registro)
-> posicion en el registro ( aca cargar el indice de posicion donde esta el dato:
O existe y yo no le he interpretado, o puede ser creado con la combinacion de blques seguro.-
Espero no haber sido muy extenso.. quien pued me aporta algo
Gracias!!