这是我的情况: 我有一个活动,它读取当前位置,在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();
}
}
}
答案 0 :(得分:1)
在this
的通话中使用startActivity
时,您没有引用Context
。相反,您正在引用为onMapClickListener
创建的匿名内部类的实例。您需要将this
替换为YourActivityName.this
或替换为YourFragmentName.this.getActivity()
,具体取决于外部类(看起来像是Fragment
...)
请更清楚您下次收到的错误。