2010-06-10 142 views
14

有沒有一種方法來顯示MapView而不擴展MapActivity?我有其他Activity類,我正在擴展,我不想改變這個......我已經看到你可以使用MapActivity來膨脹,但是沒有找到關於如何去做的任何spec/examples。沒有擴展MapActivity的MapView

+0

哪個是其他類? – Macarse 2010-06-10 11:43:21

+0

我自己的,這是設置不同的東西,有很多的功能,我在活動中使用的對象 – 2010-06-10 11:45:36

+0

我可以用MapActivity擴展我的課程,但這意味着我所有的活動都會擴展它... – 2010-06-10 12:02:54

回答

6

有沒有辦法在不擴展MapActivity的情況下顯示MapView ?

不是我所知道的。

我可以延長我的類 MapActivity,但是這將意味着所有 我的活動將擴展它

然後,你需要重構你的代碼,這樣,你的活動並不都來自繼承你自己的基類。繼承不是一種非常靈活的OO技術,特別是在Java中。

+3

我覺得非常不幸的是,一些「官方」Android組件需要你的活動繼承特定的基類,而MapActivity和FragmentActivity是兩個特別令人討厭的例子。 – Ralf 2012-07-30 16:40:16

+0

「然後你需要重構你的代碼,這樣你的活動不會全部從你自己的基類繼承。繼承不是一個非常靈活的OO技術,特別是在Java中。」這是令人失望的,恰恰是Android SDK不適用這個 – Ixx 2012-11-07 15:30:10

+0

我的意思是,這是錯誤的和令人討厭的。僅僅因爲您在某處放置了地圖視圖,整個活動必須擴展MapActivity。把所有我的活動的通用代碼放在一個普通的超類中是有道理的,而不是爲了避免繼承,只是因爲Android使用不正確。接下來,可能是TextViewActivity? – Ixx 2012-11-22 20:00:22

0

一個實用的方法是製作原始基本活動的兩個版本,它們之間的唯一區別是一個擴展Activity和另一個擴展MapActivity(與ListActivity相同的問題)。

有重複的代碼。這是我知道的難聞的氣味。但它們幾乎完全相同,只需複製整個文件並在更改基本活動時進行微小的修改即可。