1
我有TabActivity在Android項目,其中包含一些選項卡。在每個標籤中,我可以打開各種活動,打開標籤後,我想要返回到同一標籤中的上一個活動,但默認的android行爲關閉了我的標籤活動。我如何才能實現我需要的行爲?Android TabActivity後退按鈕功能與多個兒童活動
我有TabActivity在Android項目,其中包含一些選項卡。在每個標籤中,我可以打開各種活動,打開標籤後,我想要返回到同一標籤中的上一個活動,但默認的android行爲關閉了我的標籤活動。我如何才能實現我需要的行爲?Android TabActivity後退按鈕功能與多個兒童活動
有幾種方法可以做到這一點。第一個涉及到創建一個自定義的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()類包含原始活動視圖的所有膨脹。這樣,如果數組中沒有更多視圖,則可以調用此方法重新生成原始活動。
@覆蓋 公共布爾的onkeydown(INT的keyCode,KeyEvent的事件){ 如果(的keyCode == KeyEvent.KEYCODE_BACK){// 防止默認實現以前只是完成當前活動 迴歸真實; } return super.onKeyDown(keyCode,event); } – 2011-04-15 10:22:24