2013-05-14 1 views
0

더 잘 설명하려고합니다 : 내 앱에 탭 막대 (TabHost)가 있고 탭 중 두 개가 각각지도가있는 두 가지 활동입니다. 첫 번째 탭을 클릭하면지도를 얻고 원하는대로 사용할 수 있습니다. 두 번째 아이콘을 클릭하면 동일한 마커와 동일한 경로가 그려지고 동일한지도가 표시되며지도를 이동할 수 없습니다. 나는 그런 식으로 행동하기를 원하지 않습니다. 모든 활동은 다른지도를 사용해야합니다.Android : 두 개의지도가있는 두 가지 활동; 두 번째 앱이 올바르게로드되지 않습니다.

저는 v2 맵을 사용 중이며 두 액티비티는 android.support.v4.app.FragmentActivity를 확장합니다.

두 번째 활동을 먼저 클릭하면 원하는대로지도를 사용할 수 있으며 문제는 첫 번째 활동에서 반복됩니다.

나는 아무것도 재사용하지 않는다! 모든 것은 서로 다른 이름, ID를 가지고 있습니다 ...

도와주세요!

P.

private void setUpMapIfNeeded() { 
    // Do a null check to confirm that we have not already instantiated the map. 
    if (mMap == null) { 

     Logger.log("mMap = null"); 

     // Try to obtain the map from the SupportMapFragment. 
     mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapFollow)) 
       .getMap(); 

     mMap.getUiSettings().setCompassEnabled(false); 

     mapContainer = getSupportFragmentManager().findFragmentById(R.id.mapFollow).getView(); 
     // Check if we were successful in obtaining the map. 
     if (mMap == null) { 
      //TODO: dialog error map. 
     } 
    } 
} 

나는 내가 "MMAP = 널 (null)"로그 얻을이 개 활동 사이를 전환 할 때마다 ...

+0

활동과 레이아웃 모두를 게시하고 코드화해야합니다. 그런 다음 정확한 문제를 쉽게 진단 할 수 있습니다. –

답변

0

인터넷을 통해 검색하면 TabHost의 "버그"라는 것을 알게되었습니다. 이 작업을 수행하는 유일한 방법은 다른 "기본"활동을 통해이를 호출하는 등의 "내부"장소에서지도를 사용하여 활동 중 하나를 이동하는 것입니다. 이 방법으로 맵과 탭을 함께 사용하는 활동은 하나만 있고 맵이있는 다른 활동에는 탭이 없습니다. 좋은 방법은 아니지만 나를위한 유일한 방법.

1

문제 : 여기 (하나 개의 활동에)지도를 초기화하는 데 사용하는 코드는 당신은 두 SurfaceViews (지도가 그려져 있습니다) 넣어하려고하는 것 같습니다. ActivityGroup (TabActivity 확장)은 오랫동안 사용되지 않아서 Fragments의 올바른 사용으로 전환하는 것이 좋습니다. 단일 FragmentActivity으로 두 MapFragments 사이를 전환하십시오.

+0

당신의 생각은 정답이지만 250+ 클래스의 앱입니다 ... 24/7 일을하지 않고 기초를 바꿀 수 있다고 생각하지 않습니다 ... – aveschini

관련 문제