2012-07-28 37 views
0

美好的一天,我有三個活動與他們相應的片段A,BC。片段A是其他片段動態的靜態片段。多個片段和活動的交互設計

活動A已在實施用於片段A的偵聽器,該偵聽器用於橫向加載片段B或移動到單個窗格中的新屏幕。

我希望當片段B它調用了片段C按下某個按鈕,我希望它通過片段C在橫向(片段A仍然會存在)進行更換或打開一個新的屏幕單窗格模式。我在活動B onCreate方法這個簡單的代碼:

if (getResources().getConfiguration().orientation == 
      Configuration.ORIENTATION_LANDSCAPE) { 
     finish(); 
     return; 
    } 

我試圖避免片段片段通信,因爲它是在皺起了眉頭。那麼這是否意味着我必須在活動AB中實施片段B的偵聽器,我猜測在橫向方向活動A會加載片段C和肖像中,B接管?有沒有更好的辦法?。我以爲只在活動B中實現了聽衆,並且在風景方向時傳遞給了活動A,但我認爲在它由於上述代碼而通過之前它已經完成。有什麼想法嗎?

+0

任何人有任何想法?..我希望我讓自己清楚,讓你們明白。謝謝 – irobotxxx 2012-07-28 18:18:33

回答

1

...這是否意味着我實現偵聽兩個 活動A和B片段B,猜,當以橫向 活動A將加載C片段和肖像,B接管或 有沒有更好的方法?我想只在活動B和 中實施活動A時,在風景方向中的聽衆,但我認爲它會在由於上述代碼而通過之前完成。

無法實現監聽器只是在B活動,因爲A活動必須能夠展現片段C景觀。如果您擔心代碼重複,那麼您可以實現一個基本活動,爲其實施回調以顯示片段C,並讓您的兩個活動從該基類延伸。

當你沒有張貼你如何管理這些片段任何真正的代碼,請記住,如果你是在縱向(在B活動顯示片段B),然後點擊(或不管你做什麼)你用C替換片段,如果將方向切換爲橫向,則不會將其移至活動A

+0

感謝您的回覆。在他們兩個中實現監聽器都很好。我只是擔心,如果我是以縱向取向,不管這兩項活動是否會召喚起來。至於你的第二點,並沒有真正想到這一點。也許在Activity A中創建一個靜態方法,當切換到orientation時,Activity B可以調用它。你會怎麼建議? – irobotxxx 2012-07-28 20:26:29

+0

我用於管理這些片段的代碼(除了使用ActionBarSherlock)就像它是如何在android開發資源和其他教程中,所以並不認爲有必要再次提出它。:) – irobotxxx 2012-07-28 20:29:10

+0

@manuelJ在活動中調用方法'A'在android中不是一種推薦的方法,因爲您無法控制活動生命(當您處於「B」活動時它可能會被破壞)。我已經做了一個簡單的例子,說明我將如何處理您的現狀(在https://gist.github.com/3197234)。我希望你能理解它(它有效,但我沒有太多測試),它是一個單獨的活動,有兩種不同的佈局和一些額外的東西,使後退按鈕可以處理碎片。 – Luksprog 2012-07-29 10:16:22