2016-08-26 3 views
0

나는 마커에 SQLite에서 내 콘텐츠를 "부풀려"하고 있는데, 내가 취한 해결책은 here이며 작동하지 않으며 Log에 관한 어떠한 정보도 던지지 않습니다.안드로이드 - 커서 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()); 
     }