First save latitude and longitude on long click in the database
Note:-ignore place no need for that
HistoryModel historyModel = new HistoryModel(place,sLatitude, sLongitude);
DatabaseMethods.openDB(MapsActivity.this);
DatabaseMethods.addHistory(historyModel);
DatabaseMethods.closeDB();
In onMapReady callback
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
DatabaseFunctions.openDB(MapsActivity.this);
ArrayList<HistoryModel> historyModelArr = DatabaseFunctions.getHistory();
DatabaseFunctions.closeDB();
for (int i = 0; i < historyModelArr.size(); i++) {
double latitude = Double.parseDouble(historyModelArr.get(i).getLatitude());
double longitude = Double.parseDouble(historyModelArr.get(i).getLongitude());
mMap.addMarker(new MarkerOptions()
.position(new LatLng(latitude, longitude)));
}
}
Used Methods :-
public static ArrayList<HistoryModel> getHistory() {
Cursor cursor = null;
ArrayList<HistoryModel> historyModelArr = null;
try {
cursor = db.rawQuery("SELECT * FROM " + DBHelper.TABLE_HISTORY,
null);
if (cursor != null) {
historyModelArr = new ArrayList<HistoryModel>();
while (cursor.moveToNext()) {
HistoryModel historyModel = new HistoryModel(cursor.getString(1),cursor.getString(2), cursor.getString(3));
historyModelArr.add(historyModel);
}
return historyModelArr;
} else {
return historyModelArr;
}
} catch (Exception e) {
Log.e(tag, "getHistory Error : " + e.toString());
return historyModelArr;
} finally {
if (cursor != null) {
cursor.close();
}
}
}
public static void addHistory(HistoryModel historyModel) {
ContentValues values;
try {
values = new ContentValues();
values.put(DBHelper.HISTORY_PLACE, historyModel.getPlace());
values.put(DBHelper.HISTORY_LATITUDE, historyModel.getLatitude());
values.put(DBHelper.HISTORY_LONGITUDE, historyModel.getLongitude());
db.insert(DBHelper.TABLE_HISTORY, null, values);
} catch (Exception e) {
}
}
Model Class
public class HistoryModel {
private String place, latitude, longitude;
public HistoryModel(String place, String latitude, String longitude) {
this.place = place;
this.latitude = latitude;
this.longitude = longitude;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
}