我想将纬度从一个活动传递到另一个活动,但我有点困惑......我已经编写了下面的代码。
点击按钮:
lat = Double.toString(latitude);
// lat = latitude;
Intent intent = new Intent(MapsActivity.this,Restaurant_List.class);
intent.putExtra("lat", lat);
startActivity(intent);
我已将lat
声明为String。 latitude
是已经具有值的变量double。所以我传递的是String ...
在下一页:
Intent intent = getIntent();
lat = intent.getDoubleExtra("lat", 19.666);
当然我添加了19.66,这就是为什么它只会显示。否则如果我没有把数字显示错误...
或者如果我使用getStringExtra()
,它会显示默认页面,其lat与我传递的lat不匹配。我在互联网上搜索了很多但没有得到答案。
答案 0 :(得分:1)
lat
是转换latitude
后获得的字符串值,它是实际的双精度值。因此,通过意图而不是latitude
传递lat
。
intent.putExtra("lat",latitude);
编辑:由于上述方法对您不起作用,请尝试将您的双重内容放在一个包中。
Intent intent = new Intent(MapsActivity.this,Restaurant_list.class);
Bundle b = new Bundle();
b.putDouble("lat", latitude);
intent.putExtras(b);
startActivity(intent);
然后在您的其他活动中,执行此操作
Bundle b = getIntent().getExtras();
double lat= b.getDouble("lat");
答案 1 :(得分:1)
由于LatLng
对象是Parcelable,您可以在Bundle中传递它。
在两个活动中添加导入:
import com.google.android.gms.maps.model.LatLng;
第一项活动:
Intent intent=new Intent(MapsActivity.this,Restaurant_List.class);
Bundle b = new Bundle();
b.putParcelable("location", new LatLng(latitude, longitude);
intent.putExtras(b);
startActivity(intent);
第二项活动:
Intent intent=getIntent();
LatLng latLng = intent.getParcelableExtra("location");
double lat = latLng.latitude;
double lon = latLng.longitude;
答案 2 :(得分:0)
将其更改为String并传递
String latt=String.valueOf(lat);
Intent intent=new Intent(MapsActivity.this,Restaurant_List.class);
intent.putExtra("lat",latt);
startActivity(intent);
在Restaurant_List类中,检索String并转换:
Double lat=Double.parseDouble(getIntent().getStringExtra("lat");
答案 3 :(得分:0)
String message = String.format("New Location \n Longitude: %1$s \n Latitude:%2$s",location.getLongitude(), location.getLatitude());
Intent intent=new Intent(MapsActivity.this,Restaurant_List.class);
intent.putExtra("lat",message);
startActivity(intent);
希望这可以帮到你。
答案 4 :(得分:0)
非常简单的发送和获取意图。
String lat = "10.12456521";
Intent intent=new Intent(MapsActivity.this,Restaurant_List.class);
intent.putExtra("lat",lat);
startActivity(intent);
并在您的下一个活动中。
String lat;
Intent intent = getIntent();
lat =intent.getStringExtra("lat");
并且在你进入双重之后。 感谢