2017-09-28 1 views
0

현재지도가 필요한 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)); 
     } 

    } 

이 방법의 문제는 매개 변수 위치 위치 내가 그것을에서 응용 프로그램을 누릅니다을 초기화 할 때마다 그래서, 내 응용 프로그램 중지하고 오류 것 때문이다 표시됩니다. 내 매개 변수는보기 뷰 여야하기 때문에 이것이라고 생각합니다. java.lang.IllegalStateException : ID로 뷰 클래스 android.widget.Button에 온 클릭 처리기에 대한 활동 클래스 com.naluapp.naluapp.MapsActivity의 방법 drawMarker (보기)를 찾을 수 없습니다 '

오류입니다 addMarker

내지도 활동에 가변 위치 위치를 지정하여이 문제를 해결하려고했지만 문제가 해결되지 않았습니다. 나는이 종류의 언어를 잘 못하므로 당신의 도움이 필요합니다. 이 문제를 해결하는 방법을 알고 있습니까?

답변

0

XML 레이아웃에서 참조하는 메서드는 View 매개 변수 여야하며 메서드는 public이어야합니다.

다만 here 쇼와 활성의 Location 멤버 변수를 정의하고 내부에있어서 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)); 
    } 

} 
관련 문제