2009-11-13 60 views
3

我創造,有很多不同的屏幕,用戶可以瀏覽到使用這些屏幕提供的按鈕或列表中的那些屏幕的Android應用程序。設計整個應用的導航流程的最佳方式是什麼?我應該將每個屏幕映射爲View還是Activity?可以在設計整個Android應用只有一個活動,許多意見,其中每個視圖表示一個屏幕與許多其他用戶界面元素(按鈕,列表,圖像等),的Android應用程序設計流

回答

5

我建議你使用的每一個「屏幕」,也就是顯著與另一個屏幕(與外觀相關的數據)和新的活動不同。這使您可以更輕鬆地進行控制,並且不必使用大量變量來混淆代碼以定義不同的狀態。通過使用不同的活動,您通常不必擔心在不期望的甚至未定義的狀態下運行。

的活動之間交換數據,可以使用putExtra()加「簡單」的數據到INTENT或更復雜的數據,您可以擴展Application,並使用該實例作爲一個單身,你則可以通過(MyApplication)getApplication();

4

訪問你真的想遠離單一活動的想法。這實際上是java模型1 Web應用程序中稱爲「魔術servlet」的反模式。我想在這裏它會被稱爲「魔術活動」。用戶交互的每個邏輯「屏幕」都應該是Activity類的一個實例。

基於用戶交互修改個人用戶界面元素是好的,只要它只是一個或兩個元素,或者只是屏幕的一部分,但大多數情況下,您應該尋找理由將其分解到他們的自己的活動,而不是尋找合理的理由。從長遠來看,它會讓你的代碼更易於維護和理解。

+0

我同意這種觀點。但是,使用TabActivity時,即使內容顯着更好,視圖_can_可以是「活動」或「視圖」。這是由於與創建活動相關的開銷。 – Nate 2009-11-14 22:01:10

+0

對不起,我的意思是「如果內容顯着不同,不會更好」:) – Nate 2009-11-14 22:01:50