Cześć,
piszę aplikację, która wykorzystuje google places (https://developers.google.com/places/android-api/placepicker)
Chcę zrobić przejście z głównego menu (MainActivity) do mapy (PlacePickerActivity).
Na stronie google'a piszą tak:
- Zrób intenta za pomocą buildera
- Ustaw położenie
- Wywołaj startActivityForResult()
Zrobiłem tak w aktywności PlacePicker. Wszystko działa, tylko jest jeden mały problem. Po przejściu z MainActivity do PlacePickerActivity pokazuje się mapa na dosłownie milisekundę, po czym następuje powrót do aktywności głównej, MainActivity. Czemu powraca do MainActivity? Nie mogę tego zrozumieć.
Kod aktywności PlacePickerActivity:
package pwr.edu.pl.zwis2017.screen.maps;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.ui.PlacePicker;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import pwr.edu.pl.zwis2017.R;
public class PlacePickerActivity extends AppCompatActivity {
private int PLACE_PICKER_REQUEST = 1;
private static final LatLngBounds BOUNDS_MOUNTAIN_VIEW = new LatLngBounds(
new LatLng(37.398160, -122.180831), new LatLng(37.430610, -121.972090));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_place_picker);
PlacePicker.IntentBuilder intentBuilder =
new PlacePicker.IntentBuilder();
intentBuilder.setLatLngBounds(BOUNDS_MOUNTAIN_VIEW);
try {
startActivityForResult(intentBuilder.build(this), PLACE_PICKER_REQUEST);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
}
@Override
protected void onActivityResult(int requestCode,
int resultCode, Intent data) {
if (requestCode == PLACE_PICKER_REQUEST
&& resultCode == Activity.RESULT_OK) {
final Place place = PlacePicker.getPlace(this, data);
final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
String attributions = (String) place.getAttributions();
if (attributions == null) {
attributions = "";
}
/*mName.setText(name);
mAddress.setText(address);
mAttributions.setText(Html.fromHtml(attributions));*/
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
Cały kod dostępny jest tutaj: https://github.com/mw777pwr/zwis2017
Po kilku godzinach prób wycofaliśmy się z tego, ale ostatni działający commit z tą aktywnością jest tutaj:
https://github.com/mw777pwr/zwis2017/commit/8fc0f847005dbbb587bbd51a71b3c25fce9d259e