我需要将LatLng类的实例传递给另一个intent.我该怎么办?
这是代码.
这是代码.
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);
请帮帮我.
路线类:
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); } } }
这是我的路线课.我不知道这个问题.帮帮我吧它似乎发送捆绑很好,但收到它时出错.
解决方法
使用putParcelable方法将LatLng对象附加到Bundle:
Bundle args = new Bundle(); args.putParcelable("from_position",fromPosition); args.putParcelable("to_position",toPosition);
现在将它附加到您的意图:
i.putExtra("bundle",args);
要在新活动中获取它:
Bundle bundle = getIntent().getParcelableExtra("bundle"); LatLng fromPosition = bundle.getParcelable("from_position"); LatLng toPosition = bundle.getParcelable("to_position");