Android 如何将纬度和经度从一个活动传递到另一个活动

Android 如何将纬度和经度从一个活动传递到另一个活动,android,google-maps,Android,Google Maps,我想将纬度从一个活动传递到另一个活动,但我有点困惑……我已经编写了下面的代码 点击按钮: lat = Double.toString(latitude); // lat = latitude; Intent intent = new Intent(MapsActivity.this,Restaurant_List.class); intent.putExtra("lat", lat); startActivity(intent); 我已将lat声明为字符串纬度是已具有该值的变量double。所

我想将纬度从一个活动传递到另一个活动,但我有点困惑……我已经编写了下面的代码

点击按钮:

lat = Double.toString(latitude);
// lat = latitude;
Intent intent = new Intent(MapsActivity.this,Restaurant_List.class);
intent.putExtra("lat", lat);
startActivity(intent);
我已将
lat
声明为字符串<代码>纬度是已具有该值的变量double。所以我在传递字符串

下一页:

Intent intent = getIntent();
lat = intent.getDoubleExtra("lat", 19.666);
当然,我添加了19.66,这就是为什么它只会显示这一点。否则,如果我不放数字,它会显示错误


或者,如果我使用
getStringExtra()
,默认情况下会显示其lat与我正在传递的lat不匹配的页面。我在网上搜索了很多,但没有得到答案。

lat
是一个字符串值,它是在转换
纬度后获得的,是实际的双精度值。因此,通过intent传递
纬度
,而不是
纬度

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

由于
LatLng
对象是可打包的,因此可以将其打包传递

在两个活动中添加导入:

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;
第二项活动:

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;

将其更改为String并传递

String latt=String.valueOf(lat);
Intent intent=new Intent(MapsActivity.this,Restaurant_List.class);
intent.putExtra("lat",latt);
startActivity(intent);
在Restaurant_List类中,检索字符串并转换:

Double lat=Double.parseDouble(getIntent().getStringExtra("lat");
String message=String.format(“新位置\n经度:%1$s\n纬度:%2$s”,Location.getLongitude(),Location.getLatitude());
意向意向=新意向(MapsActivity.this,Restaurant\u List.class);
意向。额外(“lat”,信息);
星触觉(意向);

希望这能对您有所帮助。

发送和获取目的非常简单

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");
在你投进双人后。
谢谢

Simple pass latitude而不是lat。请调试并在此处显示getStringExtra(“lat”)的值,并将其设置为默认值:(是否删除了默认值?请尝试使用SharedReferences。)