PlaceAutoCompleteFragment en android no muestra sugerencias y se cierra después de ingresar la primera letra
El servicio de widget de autocompletado en la Google Places API
de Google Places API
para Android no funciona como se esperaba. He incluido el fragmento en mi página xml y también agregó la actividad de escucha a mi onCreate()
.
Entonces comienzo a ejecutar el fragmento del autocomplete, hago clic en la primera letra de la palabra que deseo buscar y de repente en vez de mostrar sugerencias el onError()
consigue ejecutado y cierra.
<?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>
La principal actividad para esto es:
- Estoy tratando de buscar lugares cercanos como bancos, restaurantes, cajeros automáticos dentro del área dibujada en google maps en android
- ¿Cuál es la mejor manera de soportar apis de Google Maps (v1 y v2)?
- Cómo dibujar una ruta utilizando diferentes valores long lat?
- Esta aplicación IP, de sitio o móvil no está autorizada para utilizar esta clave de API.
- Parsing JSON de los mapas google DistanceMatrix api en android
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);
}
- Encontrado com.google.android.gms: play-services: 8.4.0, pero la versión 8.3.0 es necesaria para el plugin google-services
- Cómo ampliar y agregar marcador a android mapfragment
- OnMarkerClick no funciona (v2)
- Estadísticas de Servicios de Google Play
- Google Maps no se muestra en el dispositivo Android.
- Android google maps, google lugares, latitud norte supera el sur latitiude
- Cómo ocultar los botones "Navegación" y "Puntero GPS" cuando hago clic en el marcador en el mapa google de Android
- Google Maps, no hay opción para iniciar la navegación, sólo la vista previa está allí
Es probable que pierdas una clave de API, que se requiere para el uso de la API de Google Places. Echa un vistazo a este enlace . Cuando hagas todas las cosas especificadas en el enlace, también añade este código a tu AndroidManifest
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_KEY" />
MMap necesita ser inicializado antes del uso de mMap.setOnMapClickListener (…., la ubicación goto (lat, lng, 15) tiene que ver como a continuación:
private void gotoLocation(double lat, double lng, int i) { // TODO Auto-generated method stub Marker myMarker = map.addMarker(new MarkerOptions() .icon(BitmapDescriptorFactory.fromResource(R.drawable.home)) .position(p1) .snippet("Lat:" + lat + "Lng:" + lng) .title("HOME")); map = ((MapFragment) getFragmentManager() .findFragmentById(R.id.map2)).getMap(); map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), i)); }