2010-03-02 5 views
4

저는 지오 코더 객체를 생성합니다.getBaseContext() 메소드는 안드로이드의 MyMapOverlay 유형에 대해 정의되지 않았습니까? 왜?

Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault()); 

여기 이클립스에서이 오류가 발생했습니다. 즉

The method getBaseContext() is undefined for the type MyMapOverlay 

getBaseContext()는 android.content.ContextWrapper 클래스의 기본 메소드입니다.

무엇이 문제인가 .. 어떤 생각입니까 ???

답변

2

질문은 다음과 같습니다. 어떤 클래스에서 지오 코더 개체를 만드나요? 오버레이가 ContextWrapper의 자식이 아니기 때문에 getBaseContext()는 오버레이에서 확장되는 클래스에서 작동하지 않습니다.
MapActivity를 사용하는 경우 MapActivity에 존재합니다. 문제를 해결하는 가장 쉬운 방법은 매개 변수/설정 메서드로 컨텍스트를 오버레이하는 것입니다.

+0

다음 지오 코더 예제를 참조하십시오. http://mobiforge.com/developing/story/using-google-maps-android. 오버레이를 확장 한 클래스 내에서 getBaseContext를 사용합니다. 왜? – Praveen

+1

이 예제에서 MyMapOverlay 클래스는 액티비티의 내부 클래스이므로 MapActivity가 제공하는 모든 것을 액세스 할 수 있습니다.
오버레이에 대한 일반 클래스를 만드는 경우 직접 컨텍스트를 넘겨야합니다. – WarrenFaith

+0

있어. 많이 고맙습니다. – Praveen