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í.

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.

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 .

  • Cómo construir un mapa de centro comercial para Android
  • Android studio - Tarea 'ensamblar' no encontrada en el proyecto ': google-play-services_lib'
  • Android: guarda la imagen de la URL en la tarjeta SD
  • No se puede evaluar el módulo 'react-native-maps': No se ha encontrado la configuración con el nombre 'default'
  • Excepción de estado ilegal al intentar cambiar un marcador en un Api de Google Maps v2 desde un mensaje de Google Cloud Messaging
  • android mapview cargando
  • Abrir mapa de la calle trabajando offline en Android
  • RelativeLayout width en una ventana de información personalizada para API Maps v2
  • Google Maps Android en el país
  • Android - Distancia entre dos ciudades
  • 75 marcadores en el mapa -> pérdidas de memoria -> OutOfMemoryException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.