1

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

这是我的代码:

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

请给我你的意见。谢谢。

4

2 回答 2

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
于 2013-02-10T08:35:45.450 回答
2

对于 put 和 get 中的额外内容,您必须使用相同的名称。例如,您 putuser_lat但然后尝试 get user_latitude,这显然是行不通的。否则,我觉得很好。

请注意,您可以double直接输入值,无需转换为String. 让他们回来使用getDoubleExtra.

于 2013-02-10T07:22:29.220 回答