Autore Topic: Problema con il recupero dati DB per visualizzazione marker  (Letto 331 volte)

Offline OssoMasticato

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note GT-N7000
  • Sistema operativo:
    Windows XP SP2/Win Vista
Problema con il recupero dati DB per visualizzazione marker
« il: 31 Maggio 2014, 15:08:11 CEST »
0
Salve a tutti. Sto cercando di visualizzare su una mappa i markers salvati in un database. il LogCat è pulito, ma i marker non appaiono, credo si tratti di un problema nel recupero dei dati dal database.

Ecco i codici:

Codice (Java): [Seleziona]
try {
               
                //dovrebbe servire a visualizzare TUTTI i marker già salvati
           
                   markerDbHelper = new DbHelper(getActivity());
                   
                   if (!markerDbHelper.isEmpty())   {
                           
                           int lat = 0;
                           int longit = 0;

                           Cursor cursor = markerDbHelper.getAllLocations();
                           Log.v(TAG, "Recupero dati dal DB");
                           
                           cursor.moveToFirst();
                           
                           for (int i = 0; i < cursor.getCount(); i++)   {
   
                                lat = cursor.getInt(cursor.getColumnIndex("latitudine"));
                                longit = cursor.getInt(cursor.getColumnIndex("longitudine"));

                                // create marker
                                   MarkerOptions marker = new MarkerOptions().position(new LatLng(lat, longit));
                                   
                                 
                                // adding marker
                                   googleMap.addMarker(marker);
                                   Log.v(TAG, "Aggiungo il marker alla mappa");
                                // passa al marker successivo
                                   cursor.moveToNext();
                         
                                }

Mentre nel DbHelper ho:

Codice (Java): [Seleziona]
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class DbHelper extends SQLiteOpenHelper {
        static String DATABASE_NAME = "markers";
        public static final String TABLE_NAME = "mymarkers";
        public static final String KEY_ID = "id";
        public static final String KEY_NAME = "nome";
        public static final String KEY_CAT = "categoria";
        public static final String KEY_NOTE = "commento";
        public static final String KEY_DATE = "data";
        public static final String KEY_LAT = "latitudine";
        public static final String KEY_LONGIT = "longitudine";
       
        /** Version number of the database */
        private static int VERSION = 1;
       
        public SQLiteDatabase dataBase;
       
           
               
               
                /** Constructor */
        public DbHelper(Context context) {
       
                super(context, DATABASE_NAME, null, VERSION);
                this.dataBase = getWritableDatabase();
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
       
                String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ("
                                                      + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                                                              + KEY_NAME + " TEXT NOT NULL, "
                                                      + KEY_CAT + " TEXT NOT NULL, "
                                                              + KEY_DATE + " DATETIME DEFAULT CURRENT_TIMESTAMP, "
                                                      + KEY_NOTE + " TEXT, "
                                                              + KEY_LAT + " REAL, "
                                                      + KEY_LONGIT + " REAL)";
               
                db.execSQL(CREATE_TABLE);

        }
       
        /** Returns all the locations from the table */
        public Cursor getAllLocations(){
        return dataBase.query(TABLE_NAME, new String[] { KEY_LAT , KEY_LONGIT } , null, null, null, null, null);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       
                db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
               
                onCreate(db);

        }

        public boolean isEmpty() {
                // TODO Auto-generated method stub
                return false;
        }

        public Cursor getLastLocation() {
                // TODO Auto-generated method stub
                return dataBase.query(TABLE_NAME, new String[] { KEY_LAT , KEY_LONGIT } , null, null, null, null, null);
               
               
        }

}

Il database viene creato correttamente; riesco a visualizzare tutti i dati inseriti ma non riesco a trasformarli in dati validi per l'utilizzo in MarkerOptions.

Grazie a tutti.