Cómo enviar una instancia LatLng a una nueva intención
Necesito pasar una instancia de la clase LatLng a otra intención. ¿Cómo debo hacerlo? Aquí está el código.
LatLng fromPosition = new LatLng(23.4555453556, 11.145315551); LatLng toPosition = new LatLng(12.1115145311, 99.333455333); Intent i= new Intent(Maps.this, Routes.class); startActivity(i);
Por favor, ayúdame aquí.
- Cómo emular la ubicación del GPS en el simulador de Android-x86 (VirtualBox)?
- Cómo obtener el usuario Inicio / Lugar de trabajo de un usuario en Android
- ¿Cómo interceptar una intención de Google Maps en Android?
- Cómo obtener mi certificación de la huella digital android en Android Studio
- Java: escala Mapsforge Map al usar mosaicos de mapa de bits en línea en lugar del renderizador sin conexión
Clase de ruta:
public class Routes extends FragmentActivity { GoogleMap mMap; GMapV2Direction md; private String provider; double lati; double longi; String name; Location location; Document doc; PolylineOptions rectLine; Bundle bundle = getIntent().getParcelableExtra("bundle"); LatLng fromPosition = bundle.getParcelable("from_position"); LatLng toPosition = bundle.getParcelable("to_position"); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.maps2); md = new GMapV2Direction(); mMap = ((SupportMapFragment)getSupportFragmentManager() .findFragmentById(R.id.map)).getMap(); LatLng coordinates = fromPosition; mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(coordinates, 16)); mMap.addMarker(new MarkerOptions().position(fromPosition).title("Start")); mMap.addMarker(new MarkerOptions().position(toPosition).title("End")); new ParseXML().execute(); } private class ParseXML extends AsyncTask<Void, Void, Document> { @Override protected Document doInBackground(Void... params) { doc = md.getDocument(fromPosition, toPosition, GMapV2Direction.MODE_DRIVING); ArrayList<LatLng> directionPoint = md.getDirection(doc); rectLine = new PolylineOptions().width(3).color(Color.RED); for (int i = 0; i < directionPoint.size(); i++) { rectLine.add(directionPoint.get(i)); } return null; } @Override protected void onPostExecute(Document result) { // TODO Auto-generated method stub mMap.addPolyline(rectLine); } } }
Esta es mi clase de ruta. No conozco el problema. Ayúdame aquí. Parece que enviar el paquete bien, pero hay un error al recibirlo.
- Android - SupportMapFragment con GoogleMaps API 2.0 dando IllegalArgumentException
- Mapas androide recubrimiento de círculo, dinámicamente cambiar el radio?
- La distancia entre dos ubicaciones no es correcta
- Limitar el desplazamiento en mapas sin conexión, en Android
- Android - API de Google Maps v2 - Errores de SupportMapFragment
- NullPointerException de Google maps
- La carga de Google Maps es demasiado lenta en la aplicación de Android
- Tostada no funciona
Utilice el método putParcelable para enlazar LatLng Object a un Bundle:
Bundle args = new Bundle(); args.putParcelable("from_position", fromPosition); args.putParcelable("to_position", toPosition);
Ahora adjúntelo a su intención:
i.putExtra("bundle", args);
Para conseguirlo en su nueva actividad:
Bundle bundle = getIntent().getParcelableExtra("bundle"); LatLng fromPosition = bundle.getParcelable("from_position"); LatLng toPosition = bundle.getParcelable("to_position");
¿Por qué tiene que ser una instancia de la clase? Mover los datos a String
y pasarlo como un extra de la intención.
Simplemente poniéndolo como un Extra
:
intent.putExtra("latitude", "23.4555453556"); ...
Y en la siguiente Activity
obtienes estos datos:
Intent intent = getIntent(); bundle = intent.getExtras(); bundle.getString("23.4555453556");
Y luego crear un LatLng
objeto de la String
.
- ¿Hay alguna manera de ver que un usuario ha enviado una revisión al Marketplace de Android?
- Cómo escalar un botón de derecha a izquierda, animación de Android