2013-01-16 81 views
0

我已經在tab主機中實現了活動組。我有4個活動組。每個活動組的每個第一個活動中我有一個後退按鈕。我面臨一個問題.let假設我有4個活動組,說A,B,C, D.當應用程序啓動時,那時活動組A將會在那裏,當我從A-> B開始比從B-> C時,現在我在活動組中叫做C.now當我點擊返回活動按鈕時那個時候的C組的標籤主機的當前標籤應該是我從哪個標準主機導航到C.是否有任何標準的方法來做到這一點,或者我們需要按照我們的邏輯來放?如何知道活動組中的最後一個標籤ID?

感謝

+0

我想你應該實現的接口,這是標準辦法。 –

回答

1

還有就是要做到這一點沒有標準的方式,但話又說回來,任何事情都是可能有一些邏輯!我在之前的應用程序中遇到類似問題。我通過維護一堆最後打開的標籤來解決這個問題,然後覆蓋按下的後退按鈕以從棧中移除標籤。下面給出了一些示例代碼。
初始化變量如下

tabIdStack = new Stack<Integer>(); 
openedTab = 0; 

,然後覆蓋onTabChanged()

@Override 
    public void onTabChanged(String tabId) { 
     if (!backButtonPressed) { 
      if (tabIdStack != null) { 
       if (tabIdStack.size() == noOfTabs) 
        tabIdStack.remove(0); 
       tabIdStack.push(openedTab); 
       openedTab = tabHost.getCurrentTab(); 
      } 
     } 
     backButtonPressed = false; 

,然後你也應該覆蓋onBackPressed()

@Override 
    public void onBackPressed() 
    { 
     backButtonPressed = true; 
     if (tabIdStack.size() == 0) 
      this.finish(); 
     else { 
      tabHost.setCurrentTab(tabIdStack.get(tabIdStack.size() - 1)); 
      tabIdStack.remove(tabIdStack.size() - 1); 
     }  
    } 
相關問題