2011-02-10 48 views
8

嘿! (道歉長的帖子在這裏)Android庫項目 - 定義類

我寫這將基於關閉的基本上是相同的代碼的一些應用。

每個應用都會有它的差異,有些將有新的活動,都將對分配不同的資源。

我試圖使用Android庫項目,這樣我可以把所有的通用代碼在一個地方,所以manjor的變化只需要進行一次,所有項目將被更新。

現在,資源是一個簡單的解決方案,因爲我可以在主應用程序定義每個種源只要命名約定保持不變,這將覆蓋庫項目的人。

現在,我的問題是如何做同樣的事情,但對於類?例如,ill在所有視圖中都有一個基本視圖作爲通用代碼的包裝。在此,我開展各種活動。如果所有三個應用程序都需要啓動不同的活動,因爲它們將包含不同的UI和功能?我將如何去做這件事?圖書館項目永遠不會知道主項目想要使用不同的活動,因爲它已經被編譯。

我有幾個我已經想出瞭解決方案,但我想知道其他人有沒有一些想法?這將是很大的幫助的任何反饋這裏:

  1. 在圖書館計劃的活動將被推出的存儲要加載到類的引用,將在主應用程序在其推出被定義。這是圖書館項目調用這個活動時,它可以加載它被告知的內容。

  2. 我離開,不會對庫項目活動中更改所有功能。然後我擴展這個活動,並覆蓋onCreate來做我在這裏需要的東西(比如加載不同的佈局,設置視圖等)。現在這有一個缺點,因爲我必須在我的主應用程序中而不是在庫項目中定義大多數入口點。

我希望你按照我的問題在這裏。請問我是否解釋得不好。

感謝,

亞當

+0

我想我可能找到了解決方案。對於Intents使用反射和setClassName方法,庫項目不需要讓Class實例可用。主應用程序現在可以定義這些類,並且庫項目將能夠調用它們。似乎到目前爲止工作確定! – Mimminito 2011-02-10 16:10:33

回答

0

或者更簡單的:你應該使用繼承或成分來實現這種靈活性?

我也有過這種結構任務。通常情況下,您可以通過重複使用適用的模式來解決此問題。 &將小代碼中必需的代碼部分分開。即如果您知道區別是視圖,那麼將其提取到一些可區別的類中,這些類將針對共同的接口執行並參考基本活動中的接口。

你一些鏈接:

從我如何理解你的問題至少,這更多的是一種OOP設計問題。