Der Autocomplete-Widget-Dienst in der Google Places API
für Android funktioniert nicht wie erwartet. Ich habe das Fragment in meine XML-Seite eingefügt und auch die Höreraktivität zu meiner onCreate()
hinzugefügt.
Dann fange ich an, das Autocomplete-Fragment auszuführen, ich klicke auf den ersten Buchstaben des Worts, das ich durchsuchen möchte, und plötzlich wird onError()
ausgeführt, statt Vorschläge anzuzeigen, und es wird geschlossen.PlaceAutoCompleteFragment in Android zeigt keine Vorschläge und schließt nach Eingabe des ersten Buchstabens
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.akhil.maplocation.MapsActivity" />
<fragment
android:id="@+id/place_autocomplete_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
/>
</RelativeLayout>
Die mainactivity hierfür ist:
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
LatLng fromadd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
// TODO: Get info about the selected place.
fromadd = place.getLatLng();
double lat = fromadd.latitude;
double lng = fromadd.longitude;
gotoLocation(lat, lng, 15);
}
@Override
public void onError(Status status) {
// TODO: Handle the error.
Toast.makeText(getBaseContext(),"failure",Toast.LENGTH_LONG).show();
}
});
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
fromadd = latLng;
markerOptions.title(latLng.latitude + ":" + latLng.longitude + " " + latLng.toString());
mMap.clear();
mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.addMarker(markerOptions);
}
});
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
mMap.setMyLocationEnabled(true);
}
, was der Fehler ist log den Fehler aus dem placeautocmplete und poste das Protokoll hier –
der Status {status = PLACES_API_ACCESS_NOT_CONFIGURED, Auflösung = null} – Akhil
dies könnte Ihnen helfen - http: // stackoverflow.com/questions/30434238/place-picker-automatisch-close-after-launch Wenn das nicht funktioniert, informiere mich. Ich werde eine vollständige Antwort posten. –