活动之间的意图不起作用

时间:2014-04-21 01:23:53

标签: android android-intent

在我的应用程序中,我使用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))
        );
    }


}

但意图不是传递任何东西。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

您正在检查错误的值。您正在使用value检查何时应该查看keyputExtra()中的第一个参数)

例如,您在这里使用要传递的值

latitudEmpresa = i.getStringExtra(""LATITUDEMPRESA"");

但这是错误的。假设您设置的keystatic,则可以使用

进行检查
latitudEmpresa = i.getStringExtra(ActivityOneName.TAG_LATITUDEMPRESA);

您没有使用名为"LATITUDEMPRESA"的密钥。您使用key TAG_LATITUDEMPRESA传递。因此Intent 传递数据,但您没有正确检索它。