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 .

  • No se puede importar com.google.android.maps.MapView
  • Abrir mapa de la calle trabajando offline en Android
  • Cómo girar un marcador en OSMDroid para Android?
  • Google Maps Android en el país
  • No se puede evaluar el módulo 'react-native-maps': No se ha encontrado la configuración con el nombre 'default'
  • No se puede encontrar com.google.android.maps en Eclipse
  • Determinar la ubicación del usuario en los mapas de osm
  • ¿Cómo obtener el evento de clic del marcador mediante SDK de MapBox?
  • Cómo construir un mapa de centro comercial para Android
  • Limitar el desplazamiento en mapas sin conexión, en Android
  • Adición de superposición a OSMDROID
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.