2016-08-26 9 views
0

私はコンテンツをSQLiteからMarkerに "膨らませようとしていますが、私が取った解決策はhereです。それは機能しておらず、ログに何の情報も投げていません。Android - Cursor onMapReady(マーカー)

私はFragmentの内側に私のコードビットこのマーカーのものに新しいとSQLiteの

だ:

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

はお時間をいただき、ありがとうございます。

答えて

0

最後に私はそれを修正することができた、これは誰か助けて欲しい。

マイParkDataSource:

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

マイ・フラグメント:

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()); 
     } 
関連する問題