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