когда вы помещаете свой идентификатор местоположения в дополнения к намерениям, также добавьте идентификатор маршрута как -1 (или что-то, что в любом случае недопустимо в вашем сценарии), и наоборот.Когда вы проверяете результат своей деятельности, сделайте что-то вроде:
//if the location id is not equal to -1
if (data.getIntExtra(BookmarksActivity.LOCATION_ID, -1) != -1) {
// it means that there is a location id so do what you want with that
}
то же самое с вашим идентификатором маршрута
ПРАВКА, чтобы включить код:
Intent intent = new Intent();
intent.putExtra(BookmarksActivity.LOCATION_ID,locationID);
intent.putExtra(BookmarksActivity.ROUTE_ID, -1)
intent.putExtra(BookmarksActivity.BOOKMARK_TYPE,1);
((Activity) context).setResult(Activity.RESULT_OK, intent);
((Activity) context).finish();
также:
Intent intent = new Intent();
intent.putExtra(BookmarksActivity.ROUTE_ID,routeID);
intent.putExtra(BookmarksActivity.LOCATION_ID,-1);
intent.putExtra(BookmarksActivity.BOOKMARK_TYPE,2);
((Activity) context).setResult(Activity.RESULT_OK, intent);
((Activity) context).finish();
тогда в вашем результате:
if(requestCode == REQUEST_CODE_BOOKMARKS_ACTIVITY)
{
if(data != null)
{
int temp = data.getIntExtra(BookmarksActivity.LOCATION_ID, -1);
int temp2 = data.getIntExtra(BookmarksActivity.ROUTE_ID, -1);
if(temp != -1)
{
int locationId = data.getIntExtra(BookmarksActivity.LOCATION_ID, 1);
Log.i("BBB", locationId + "");
myDataSource.open();
com.zayed.zma_at3.model.Location savedLocation = myDataSource.getLocationByID(locationId);
createMarkerOnLocation(savedLocation.getTitle(),savedLocation.getLat(),savedLocation.getLng());
}
else if(temp2 != -1)
{
int routeId = data.getIntExtra(BookmarksActivity.ROUTE_ID, 1);
myDataSource.open();
Route route = myDataSource.getRouteById(routeId);
route.setLocationPoints(myDataSource.getPointsByRouteId(routeId));
// Draw line on map
for(com.zayed.zma_at3.model.Location p : route.getLocationPoints())
{
Log.i("BBB", route.getId() +" "+ p.getId() + " " + p.getLat()
+ " " + p.getLng() + "");
}
}
}