SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Android - Cursor onMapReady (Marker)

Endlich habe ich es geschafft, es zu reparieren, hoffe, das hilft jemandem.

Meine ParkDataSource:

public Cursor getAll() {
        return db.rawQuery("SELECT * FROM " + SQLiteHelper.TABLE_PARKS,
                null);
    }

Mein Fragment:

SQLiteHelper dbHelper = new SQLiteHelper(getActivity());
        pds = new ParksDataSource(dbHelper.db);
        cursor = pds.getAll();

        List<Marker> markersList = new ArrayList<Marker>();
        int i = 0;
        try {
            while (cursor.moveToNext()) {
                String[] latlong = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_PARKS_COORDINATES)).split(",");
                double latitude = Double.parseDouble(latlong[0]);
                double longitude = Double.parseDouble(latlong[1]);
                mark = new LatLng(latitude, longitude);

                if (cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_PARKS_SLOTS)) == null){

                    Marker mPark = map.addMarker(new MarkerOptions().position(mark)
                            .title(cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_PARKS_TITLE)))
                            .icon(BitmapDescriptorFactory.fromBitmap(writeTextOnDrawable(R.mipmap.ic_pin, cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_PARKS_FREE))))));
                    mPark.setTag(0);
                    markersList.add(mPark);
                }
                i++;
            }
        } finally {
            cursor.close();
        }

        LatLngBounds.Builder builder = new LatLngBounds.Builder();
        for (Marker m : markersList) {
            builder.include(m.getPosition());
        }