android - 无法通过 Intent 从子活动(谷歌地图)传递价值到父活动
问题描述
我只是想使用 onActivityResult 从谷歌地图(儿童活动)中检索纬度和经度值,以将其传递回父活动。但是,检索到的值似乎总是返回 0。对此的任何帮助将不胜感激!
家长活动:
Intent intent;
intent = new Intent(TheInput.this, GoogleMap.class);
startActivityForResult(intent, 5);
break;
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 5){
if(resultCode == RESULT_OK) {
latitude = getIntent().getDoubleExtra("LATITUDE",0);
longitude = getIntent().getDoubleExtra("LONGITUDE",0);
Toast.makeText(getApplicationContext(), "From the received data, \nLat is " + latitude + ", Lon is " + longitude, Toast.LENGTH_SHORT).show();
//The toast value shows 0
}
}
super.onActivityResult(requestCode, resultCode, data);
}
儿童活动(谷歌地图):
List<Address> locationList = null;
Address address = locationList.get(0);
LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
lat = address.getLatitude();
lon = address.getLongitude();
Intent intent = new Intent();
intent.putExtra("LATITUDE",lat);
intent.putExtra("LONGITUDE",lon);
setResult(RESULT_OK, intent);
Toast.makeText(getApplicationContext(), "Lat is " + lat + ", Lon is " + lon, Toast.LENGTH_SHORT).show();
//The toast shows that they are values here
解决方案
找出我的错误,父活动中的这部分代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 5){
if(resultCode == RESULT_OK) {
latitude = getIntent().getDoubleExtra("LATITUDE",0);
longitude = getIntent().getDoubleExtra("LONGITUDE",0);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
应该改为这样写。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 5){
if(resultCode == RESULT_OK) {
latitude = data.getDoubleExtra("LATITUDE",0);
longitude = data.getDoubleExtra("LONGITUDE",0);
}
}
super.onActivityResult(requestCode, resultCode, data);
}