我想将纬度和经度的字符串值发送到另一个类,但我对如何使用它有点额外的意图有点困惑。
这是我的代码:
Intent i = new Intent(getApplicationContext(), PlacesMapActivity.class);
//Sending data to another Activity
String latitude = Double.toString(placeDetails.result.geometry.location.lat);
String longitude = Double.toString(placeDetails.result.geometry.location.lng);
i.putExtra("user_lat", latitude);
i.putExtra("user_lng", longitude);
startActivity(i);
如果我尝试检索这样的字符串值是不是正确的?
// Getting intent data
Intent i = getIntent();
// Users current geo location
String user_lat = i.getStringExtra("user_latitude");
String user_lng = i.getStringExtra("user_longitude");
请告诉我你的意见。感谢。
答案 0 :(得分:2)
您必须在put和in中使用相同的名称。例如,您放置user_lat
但是然后尝试获取user_latitude
,这显然不起作用。否则,它对我来说很好。
请注意,您可以直接设置double
值,无需转换为String
。要让他们回来使用getDoubleExtra
。
答案 1 :(得分:2)
根据您的问题 - 是的,这是将数据从Activity
传递到另一个数据的正确方法,但您必须记住,您的name
参数应该与放置和检索数据相同。
另外,第二种方法是使用getExtras()
方法。在第二个活动中,您要在其中检索数据:
// Getting intent data
Intent i = getIntent();
Bundle extras = i.getExtras();
// Users current geo location
if(extras != null) { // Check if extras were found
String user_lat = extras.getString("user_latitude");
String user_lng = extras.getString("user_longitude");
}
两种方式的区别在于:
getStringExtra()
,则String
方法返回null getExtras()
方法返回null