Witam,
Mam mapę i chce zaznaczać punkty i potem zmieniać im kolory, już tłumaczę.
Mam mapę z Googla Api. Wchodze do aplikacji i zaznaczam jakiś punkt (obojętnie gdzie). Aplikacja pobiera latitude i longitude i zapisuje w pamięci wraz z liczbą (raz kliknąłem, więc 1). Przy następnym uruchomieniu aplikacji pobiera z pamięci lat i lon punktu, zaznacza go i jak znowu na niego kliknę to pobiera z pamięci ile razy na niego już kliknąłem (w tym przypadku raz). Zaznacza go na inny kolor i zapisuje znowu w pamięci, że teraz 2 razy na niego kliknąłem. Rozumiecie?
Mój problem polega na tym, że nie wiem czego użyć. Chciałem użyć DataBasa, ale nie wiem jak pobierać na jaki punkt ile razy nacisnąłem. Bo to zależy ile użytkownik da punktów, więc najlepiej DataBasy, ale nie wiem jak tego użyć...
Mam tylko tyle:
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
if(click){
final MarkerOptions options = new MarkerOptions();
options.position(point);
options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
options.title("Tutaj znaleziono grzyby"+" 1 raz");
double i = options.getPosition().latitude;
double j = options.getPosition().longitude;
int number = 1;
addData(i, j, number);
/*int number = sharedpreferences.getInt("number", 0);
sharedpreferences.edit().putLong(number+"mark_lat", i).apply();
sharedpreferences.edit().putLong(number+"mark_lon", j).apply();
number+=1;
sharedpreferences.edit().putInt("number", number).apply();*/
mMap.addMarker(options);
} else{
}
}
});
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(final Marker marker) {
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_YELLOW));
return false;
}
});
public static void addData(double latitude, double longitude, int number){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(Data.LATITUDE, latitude);
cv.put(Data.LONGITUDE, longitude);
cv.put(Data.NUMBER, number);
long id = db.insert(Data.TABLE_NAME, null, cv);
Log.d("id", id+"");
}