2016-08-26 11 views
0

Ich versuche, meinen Inhalt von SQLite in Markern "aufzublasen", aber die Lösung, die ich von here nahm, funktioniert nicht, und es wirft keine Informationen über Log auf.Android - Cursor onMapReady (Marker)

Ich bin ein bisschen neu auf dieser Marker Sachen und SQLite

Mein Code innerhalb des Fragment:

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

parks = pds.getAllParks(); 

    List<Marker> markersList = new ArrayList<Marker>(); 
    int i = 0; 
    Cursor cursor = db.rawQuery("SELECT * FROM " + SQLiteHelper.TABLE_PARKS, 
      null); 
    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); 
      Marker mPark = mMap.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); 
      Log.d("HierParks", "Pin: " + i + ", " + latitude + "," + longitude + " - Park:" + cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_PARKS_TITLE))); 
      i++; 
     } 
    } finally { 
     cursor.close(); 
    } 

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

Dank für Ihre Zeit danken.

Antwort

0

Endlich habe ich es geschafft, es zu reparieren, hoffe, dass diese jemandem helfen.

Mein 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()); 
     }