在我的应用程序中,我使用Intent将对象从活动传递到另一个活动。
在这种情况下,我传递的值将用作第二个活动的地图标记。
从源活动中,我使用以下方法打开第二个活动:
public void openMapa(View view){
//Starting single contact activity
Intent in = new Intent(getApplicationContext(),
Empresas_Mapa.class);
Log.v("LATITUD EN EMPRESAS SIMPLE", latitudEmpresa);
in.putExtra(TAG_NOMBREEMPRESA, nombreEmpresa);
in.putExtra(TAG_DIRECCIONEMPRESA, direccionEmpresa);
in.putExtra(TAG_LATITUDEMPRESA, latitudEmpresa);
in.putExtra(TAG_LONGITUDEMPRESA, longitudEmpresa);
startActivity(in);
}
要检查传递值是否正确,您可能会看到一个日志,显示latitudEmpresa的预期值。
这是第二项活动的代码:
public class Empresas_Mapa extends Activity{
static final LatLng CANARIAS = new LatLng(27.9405285, -15.5566901);
private GoogleMap map;
String nombreEmpresa;
String direccionEmpresa;
String latitudEmpresa;
String longitudEmpresa;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapa_activity_main);
Intent i = getIntent();
nombreEmpresa = i.getStringExtra("TAG_NOMBREEMPRESA");
direccionEmpresa = i.getStringExtra("TAG_DIRECCIONEMPRESA");
latitudEmpresa = i.getStringExtra("LATITUDEMPRESA");
longitudEmpresa = i.getStringExtra("LONGITUDEMPRESA");
Log.v("LATITUD EN EMPRESAS MAPA", latitudEmpresa);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(CANARIAS, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
map.setMyLocationEnabled(true); //
Marker marker = map.addMarker(new MarkerOptions()
.title(nombreEmpresa)
.position(new LatLng(
Double.parseDouble(latitudEmpresa),
Double.parseDouble(longitudEmpresa)
))
.snippet(direccionEmpresa)
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ofertas))
);
}
}
但意图不是传递任何东西。
欢迎任何帮助。
答案 0 :(得分:1)
您正在检查错误的值。您正在使用value
检查何时应该查看key
(putExtra()
中的第一个参数)
例如,您在这里使用要传递的值
latitudEmpresa = i.getStringExtra(""LATITUDEMPRESA"");
但这是错误的。假设您设置的key
为static
,则可以使用
latitudEmpresa = i.getStringExtra(ActivityOneName.TAG_LATITUDEMPRESA);
您没有使用名为"LATITUDEMPRESA"
的密钥。您使用key
TAG_LATITUDEMPRESA
传递。因此Intent
传递数据,但您没有正确检索它。