2014-02-16 283 views
0

我開發了一個android應用程序,包括帶有標籤的滑動視圖。 所有頁面都有自己的佈局,所有這一切都很好:D。如何在已經有「擴展」的Activity中添加MapView?

但我想添加到該視圖中的MapView類(從谷歌API)中的一個,所以我需要延長我的MainActivity(唯一一個我有)至MapActivity,但我不能(沒有什麼錯在這裏):

public class MainActivity extends ActionBarActivity implements ActionBar.TabListener{ 

那麼有沒有辦法從MainActivity管理我的MapView?

感謝很多:)

(對不起,我英文不好語法)

+0

Maps V2中沒有'MapActivity'。 – CommonsWare

回答

0

答案是否定的。如果不擴展MapActivity,則無法使用MapView。正如gulbrandr指出的,有類似的問題here,這可能對任何嘗試與我相同的事情的人都有用。

+0

所以我可以使用MapFragment?非常感謝,我現在測試:) –

+1

'MapActivity'適用於Maps V1,它已被棄用約16個月,不能再用於新開發。當前的地圖API Maps V2根本沒有「MapActivity」,更不用說要求使用一個。 – CommonsWare

3

通常當你遇到像這樣的問題時,你需要看封裝而不是擴展。你不能使用MapView作爲成員變量嗎?

如果您查看MapView API,它表示我們必須實現MapView的Android生命週期才能正常運行。所以,如果你使用的MapView作爲成員變量,你需要重寫你的主要活動如下方法來調用的MapView的匹配方法:

onCreate(Bundle) 
onResume() 
onPause() 
onDestroy() 
onSaveInstanceState(Bundle) 
onLowMemory() 

舉個例子,你的活動將類似於以下:

public final class MainActivity extends Activity { 

    private MapView mMapView; 

    @Override 
    public final void onCreate(final Bundle pSavedInstanceState) { 
      super(pSavedInstanceState); 
      this.mMapView = new MapView(this); 
      /* Now delegate the event to the MapView. */ 
      this.mMapView.onCreate(pSavedInstanceState); 
    } 

    @Override 
    public final void onResume() { 
      super.onResume(); 
      this.getMapView().onResume(); 
    } 

    @Override 
    public final void onPause() { 
      super.onPause(); 
      this.getMapView().onPause(); 
    } 

    @Override 
    public final void onDestroy() { 
      super.onDestroy(); 
      this.getMapView().onDestroy(); 
    } 

    @Override 
    public final void onSaveInstanceState(final Bundle pSavedInstanceState) { 
      super.onSaveInstanceState(pSavedInstanceState); 
      this.getMapView().onSaveInstanceState(pSavedInstanceState); 
    } 

    @Override 
    public final void onLowMemory() { 
      super.onLowMemory(); 
      this.getMapView().onLowMemory(); 
    } 

    private final MapView getMapView() { 
      return this.mMapView; 
    } 

} 
+0

感謝您的回答,但我認爲這對我來說有點困難,我不明白我必須做什麼... :( –

+0

我已經充實了代碼,希望這會有所幫助。 –

+0

偉大的工作,但只在我的第一個看法(在第一頁),但不是在我的第二頁(崩潰)與相同的佈局:( –

相關問題