2011-04-15 68 views
1

我有TabActivity在Android項目,其中包含一些選項卡。在每個標籤中,我可以打開各種活動,打開標籤後,我想要返回到同一標籤中的上一個活動,但默認的android行爲關閉了我的標籤活動。我如何才能實現我需要的行爲?Android TabActivity後退按鈕功能與多個兒童活動

+0

@覆蓋 公共布爾的onkeydown(INT的keyCode,KeyEvent的事件){ 如果(的keyCode == KeyEvent.KEYCODE_BACK){// 防止默認實現以前只是完成當前活動 迴歸真實; } return super.onKeyDown(keyCode,event); } – 2011-04-15 10:22:24

回答

0

有幾種方法可以做到這一點。第一個涉及到創建一個自定義的GroupActivity,它將跟蹤來自LocalActivityManager的堆棧,然後爲每個選項卡擴展該類。對於這一點,看看這個教程:

http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.html

更簡單的方法是讓你的最初的ActivityGroup類中的標籤的子視圖數組,然後覆蓋的後退按鈕。以下是一些示例代碼:

public void replaceContentView(String id, Intent newIntent) { 
    View view = getLocalActivityManager() 
        .startActivity(id, newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) 
        .getDecorView(); 
    viewList.add(view); // Add id to keep track of stack. 
    this.setContentView(view); 
}  


public void previousView() { 

    if(viewList.size() > 0) { 
     viewList.remove(viewList.size()-1); 
     if (viewList.size() > 0) 
      setContentView(viewList.get(viewList.size()-1)); 
     else 
      initView(); 
    }else { 
     finish(); 
    } 
} 

initView()類包含原始活動視圖的所有膨脹。這樣,如果數組中沒有更多視圖,則可以調用此方法重新生成原始活動。