0

我是新的android應用程序開發(但有一些Java的經驗),我正在努力一點,我應該如何設計我的應用程序。例如:Android的設計原則和活動/片段的使用

當我執行的應用程序我有標誌和兩個按鈕的起始頁:註冊的LogIn。這應該是第一個活動。

1.)如果我按註冊按鈕,我看到一個頁面(另一個活動)與輸入字段,一個註冊按鈕,還有一個Facebook和一個Google+按鈕。

2.)如果我按登錄按鈕,我會看到一個頁面(另一個活動)的輸入字段,一個登錄按鈕,還有一個Facebook和Google+按鈕。

而是實現Facebook和谷歌+按鈕兩次,我想過把谷歌+按鈕,其功能集成到一個單獨的片段和同爲Facebook的按鈕,這樣我就可以重新使用它們。

這是一個「好」的活動和片段的interpreatation,如果不是我應該什麼時候使用片段和活動?我想到了像可重複使用的容器這樣的碎片,可以在不同的活動中實施。

感謝您的任何建議!

+2

我認爲你的意思是'碎片'而不是細分?這個問題和答案是相當新的和特別值得一提的問題底部的鏈接 - 沒有明確的答案,但討論可能會幫助你決定什麼適合你:http://stackoverflow.com/q/20306091/334402 – Mick

+1

嘗試片段嘗試http://stackoverflow.com/questions/10478233/android-need-some-clarifications-of-fragments-vs-activities-and-views – TryinHard

+0

是的,抱歉,我的意思是片段。我已經閱讀了這些問題的答案,並且我看到它是某種可重複使用的容器?所以在我的例子中,將一個按鈕及其功能(例如Facebook登錄或Google +登錄)放入一個片段中,還是應該將所有內容放在一個活動中? – spcial

回答

1

活動,片段和視圖具有非常類似的目的,但在不同的層面上。只要它適合你,你可以隨意混合它們。我個人不喜歡片段,所以我只在我的應用中使用活動和視圖。以下是主要區別:

  • 活動是切入點。您可以使用Intent來啓動您的應用程序來執行其中一項活動。你不能用其他元素做到這一點。當您計劃入口點時,您應該使用一項活動。例如一個電子郵件撰寫模塊,可以被其他應用程序訪問。
  • 視圖非常簡單。使用它們來準備可重用組件,佈局和小部件。其他應用只能以庫的形式訪問視圖。
  • 碎片在兩者之間。它們由可視化部分,數據和應用程序邏輯組成。片段都可以用類似的活動返回堆棧管理器使用,不能使用意圖推出,可以利用佈局和窗口小部件一樣的意見。使用碎片來創建帶有背層的大屏幕。

和相似:

  • 所有這三個提到的元件可以在同一時間被顯示的多個。使用ActivityGroup的活動,使用佈局和FragmentManager的片段,使用佈局的視圖。
  • 這三者都有其生命週期。碎片具有最複雜的生命週期,視圖 - 最簡單。
  • 所有這三個可以用來編寫應用程序。您可以使用活動,片段和視圖以非常類似的方式在屏幕上放置佈局和小部件。

基本上活動由一個窗口和一個佈局(和一些數據邏輯)組成。片段由一個佈局(和一些邏輯數據)組成。查看是一個佈局或小部件(和一些數據邏輯)&。

回答你的問題 - 這意味着你的方法很好。至少對於我來說。如果您打算僅將這些按鈕用作UI組件,則可以將它們重寫爲視圖。

+0

感謝您的非常有用的答案。我認爲我一直在努力將按鈕放入片段中,因爲片段實際上具有比我需要的更多的功能(例如,您提到可以像使用活動一樣使用backstack管理器)。也許這已經是沉重的「簡單」登錄按鈕。但是,雖然這些登錄按鈕正在實現Facebook或谷歌+ API的進一步功能,我不確定是否有可能在視圖中使用它們。你真的知道這是可能的還是應該保持原樣? – spcial

+0

我不知道你的編碼風格或你的應用程序,所以我很難給你確切的答案。 GLSurfaceView可能是最複雜的一個,它做了很多,所以我敢打賭,在你的情況下,這也是可能的,問題是更方便。 – Zielony