2013-02-10 75 views
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"); 

请给我你的意见。谢谢。

回答

2

您必须使用相同名称的额外输入和输入。例如你把user_lat,但然后尝试得到user_latitude,这显然不会工作。否则,我看起来很好。

请注意,您可以直接将double的值,不需要转换为String。让他们回来使用getDoubleExtra

+0

谢谢亨利。 我是关于user_lat的错字。 :) – user1673210 2013-02-10 07:29:06

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

两种方式之间的区别是:如果String指定名称找不到

  • getStringExtra()方法返回null
  • getExtras()方法返回null如果没有发现额外的东西