我目前正在开发Android工作室应用,我需要一张地图。 在这张地图中,我有一个叫做添加标记的按钮。我想用这个按钮做的是每当我按下它时在我当前的位置显示一个标记。
要做到这一点,我有下一个方法:
private void drawMarker(Location location) {
if (mMap != null) {
mMap.clear();
LatLng gps = new LatLng(location.getLatitude(), location.getLongitude());
mMap.addMarker(new MarkerOptions().position(gps));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(gps, 16));
}
}
此方法的问题是其参数是位置位置,所以每当我初始化应用程序并按下它时,我的应用程序将停止并显示错误。我认为这是因为我的参数应该是View view。
这是错误: java.lang.IllegalStateException:无法在视图类android.widget.Button上的onClick处理程序的活动类com.naluapp.naluapp.MapsActivity中找到方法drawMarker(View),其id为'addMarker
我试图通过在我的地图活动中放置一个变量的位置来解决这个问题,但这并没有解决我的问题。我不擅长这种语言,所以我需要你的帮助。你知道怎么解决这个问题吗?
答案 0 :(得分:0)
您在XML布局中引用的android:onClick
方法必须具有View
参数,并且该方法必须是公开的。
只需在活动中将Location
成员变量定义为show here,然后在drawMarker()
方法中引用它:
public void drawMarker(View v) {
if (mMap != null && mLastLocation != null) {
mMap.clear();
LatLng gps = new LatLng(mLastLocation.getLatitude(), mLastLocation.getLongitude());
mMap.addMarker(new MarkerOptions().position(gps));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(gps, 16));
}
}