2013-06-24 45 views
2

我想創建一個名爲Vista的擴展android活動的通用超類,然後創建所有我的活動擴展我的類Vista(從而繼承我所有我的活動中的所有常用方法)。但是在這個項目中我有一些FragmentActivity類,我無法從Vista課程中擴展它們。活動和片段活動的Android公共超級類

任何解決方案? 我可以改變我的FragmentActivity在一個明智的活動和使用android.app.fragment與TabHost裏面,而不是android.support.v4.fragment,因爲我爲Android 4+開發?

enter image description here

+2

只需讓'Vista'擴展'FragmentActivity',代碼中的其他內容就不會改變。你爲什麼不想這樣做? – LuckyMe

+0

我想這樣做,因爲我正在做一個複雜的項目,並且在我的活動中有很多常見的方法。另外,我想用維持秩序的方式使用明確的層次結構進行簡單的閱讀,並使未來的代碼升級變得容易 – lory105

+0

等待,我確實給出了答案,只是將'Vista'從擴展'Activity'改爲擴展'FragmentActivity '這可以解決問題,並且不需要對你的任何'MyActivity1','MyActivity2'和'MyAcitivty3'進行任何修改。這是解決方案。 – LuckyMe

回答

1

你有2種方式:

  1. 添加VistaFragmentActivity並且將其擴展爲片段
  2. 請YOUT Vista的延長FragmentActivity

最良好的祝願。

3

您需要使Vista類成爲獨立的助手類。然後創建一個ActivityVista類,該類繼承活動幷包含作爲私有成員的Vista輔助類的實例。並且還創建一個FragmentActivityVista類延伸FragmentActivity幷包括一個Vista助手類的實例。

ActivityVistaFragmentActivityVista類必須有一堆,通過對Vista的輔助類呼叫轉移功能,但它們至少不會有重複的全部功能。

+0

像糖果一樣:)做着完全一樣的事情。 –

+1

這是混合模式。有一些包使用註釋來自動創建轉發功能:http://berniesumption.com/software/mixins-for-java/ – antlersoft

+0

在我的情況下,獨立的助手類不是一個很好的解決方案,因爲很多常用方法使用android活動方法 – lory105