Android Google Map v2 - 点击Google地图上的某个位置开始新的活动

时间:2014-02-19 16:53:02

标签: java android api google-maps android-intent

这是我的情况: 我有一个活动,它读取当前位置,在TextView中显示地址,并在活动底部区域的“小”GoogleMap上设置标记。在此地图ScrollGestures被禁用 - 它只是为了显示当前位置用户。

如果当前位置不正确,用户应该能够点击地图上的某个位置,这会打开一个新活动,他可以将标记拖动到正确的位置。

我的问题是: 如何通过单击地图上的某个位置来启动新活动。

我试过这个,但是我无法在onClick方法中放置一个Intent: a link

这是我的代码:

    private void initilizeMap() {
    if (googleMap == null) {
        googleMap = ((MapFragment) getFragmentManager().findFragmentById(
                R.id.map)).getMap();
        //googleMap.setMyLocationEnabled(true);

        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
                lat, lng), 13));
        googleMap.getUiSettings().setScrollGesturesEnabled(false);
        googleMap.setOnMapClickListener(new OnMapClickListener() {

            @Override
            public void onMapClick(LatLng arg0) {

                Intent intent2 = new Intent(this, SettingsActivity.class);
                startActivity(intent2);
            }
        });
        addMarker();

        }
    }
}

1 个答案:

答案 0 :(得分:1)

this的通话中使用startActivity时,您没有引用Context。相反,您正在引用为onMapClickListener创建的匿名内部类的实例。您需要将this替换为YourActivityName.this或替换为YourFragmentName.this.getActivity(),具体取决于外部类(看起来像是Fragment ...)

请更清楚您下次收到的错误。