2014-12-06 67 views
2

我有3個活動A,B,C。我想設置它們在一定的層次結構中,並使用setParentActivity,以便我可以自動獲取默認的Android後退按鈕。所以首先,如果有一種方法可以獲得默認的Android後退按鈕,可以解決我的問題。Android - 設置父活動android清單

我已經下載了android開發者工具圖標。並有後退按鈕,但不喜歡這個,然後我必須使用actionBar.setIcon('icBackButton'),所以我不能設置自己的圖標。如果你不確定我在說什麼,我正在討論這個後退按鈕。這就是我想要的:

enter image description here

這是我已經試過了,其他的問題,這是我不希望所有的文本時背部被按下它應該只是後退按鈕被選中。

enter image description here

我可以用setParentActivity要做到這一點,但是當我已經試過我一直沒能得到它的正常工作。這是我希望層次結構如何工作的。

enter image description here

如果這裏是視覺上說,A是發射活動,它可以去B或C,然後B能去C.型,在C後面時被擊中,我總是希望它回到那種肆無忌憚的活動。

我如何這一切都有道理我試圖解釋清楚,因爲我可以。

感謝您的幫助提前。

回答

0

我能想到的方法有兩種:

1)你可以創建一個BaseActivityC。然後,您可以創建擴展BaseActivityC的Activity AC,並擴展BaseActivityC的Activity BC。 在清單文件中爲MainActivity A設置android:parentActivityName =「com.packagename.activities.AC」,MainActivity爲android:parentActivityName =「com.packagename.activities.BC」A. 創建res/layout文件時對於BaseActivityC,您應該有兩個以上佈局ac.xmlbc.xml。它們中的每一個都應包括baseLayout(),當然還要在每個佈局中設置工具:context =「。AC」tools:context =「.BC」

2)有可能傳遞一類參數的A.classB.class到活動ÇÇ可以通過檢查instanceof的A或B

希望手柄onBackPressed那幫助!

1

爲什麼不只是寫getActionBar().setDisplayHomeAsUpEnabled(true),然後覆蓋

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (item.getItemId() == android.R.id.home) { 
      onBackPressed(); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

這樣,按向上鍵將始終作爲按後退按鈕,而這正是你所描述的行爲。

爲了不選擇標題,你可以把一個自定義的TextView作爲標題而不是內置於其中,然後使用它,但這會使得向上按鈕的點擊變得非常平凡(因爲它違背了設計指南),所以我建議不要那樣做。