如何将String值发送到另一个Activity?

时间:2013-02-10 07:11:13

标签: java android google-maps android-intent

我想将纬度和经度的字符串值发送到另一个类,但我对如何使用它有点额外的意图有点困惑。

这是我的代码:

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");

请告诉我你的意见。感谢。

2 个答案:

答案 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