2012-11-03 3 views
0

MainActivity 에서 onCreate :소개 ItemizedOverlay

List<Overlay> listOfOverlays = mapView.getOverlays(); 
    listOfOverlays.add(myItemizedOverlay); //List<OverlayItem> of myItemizedOverlay is empty 

나중에 내가 추가하고 myItemizedOverlay에서 항목을 제거합니다.

myItemizedOverlay 목록이 비어 있고지도를 클릭하면 오류가 발생합니다.

이 프로세스를 올바르게 구성하는 방법은 무엇입니까?

+0

2 가지 버튼 : 항목 추가, 항목 제거. 이 과정에서 myItemizedOverlay에 항목이없는 순간이 될 수 있습니다. – user1464440

답변

0

한 번 비슷한 문제가 발생했거나 그렇게 생각했습니다. 사용자가 위치를 저장하도록 허용 했으므로 위치를 파일에 저장했습니다. 그런 다음지도를 볼 때 파일의 내용 (위치)을로드하고 오버레이를 사용하여지도에 항목을 표시합니다. 그러나 항목이없고지도를 누르면 오류가 발생했습니다.

문제가 발생한 경우 간단한 if 문을 넣어 문제를 해결했습니다. 내가, 내가 ArrayList에에 각 위치를 배치 할 파일의 위치를 ​​얻을 수 있도록하면

는,이 if 문 사용 :

if (!fileList.isEmpty()){} 

을 그리고 if 문이 내 오버레이를 추가 할 수있는 모든 코드를 배치 . 이게 도움이 되길 바란다!

+0

답변 해 주셔서 감사합니다. 하지만 mapView에서 전체 myItemizedOverlay를 추가하고 제거하는 것이 더 좋은 방법일까요? – user1464440

+0

나는 당신이 무슨 뜻인지 너무 확신하지 못합니다. fileList는 arraylist이므로 추가 버튼을 클릭하면 fileList.add() 메서드를 사용할 수 있습니다. 제거 버튼을 누르면 fileList.remove() 메서드를 사용할 수 있습니다. 그렇게하면 작동하고 코드가 if 문 내에있는 한 목록이 비어 있으면 오류가 표시되지 않습니다. – chRyNaN