2010-10-13 22 views
1

我創建了兩個選項卡,分別爲TAB1和TAB2。對於TAB1,我已加載一個活動,說ActivityOne,進TAB1作爲在單個選項卡中有多個活動時,模擬器上的後退按鈕出現問題

Intent intent = new Intent(this,ActivityOne.class); 
    TabHost.TabSpec spec = getTabHost().newTabSpec("ActivityOne") 
             .setIndicator("Activity One",getResources().getDrawable(R.drawable.artists)).setContent(intent); 
    getTabHost().addTab(spec); 

這ActivityOne擴展了的ActivityGroup和我在此活動添加一個按鈕。通過點擊這個按鈕,它會調用另一個活動,說ActivityOne_One,作爲

public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(ActivityOne.this,ActivityOne_One.class); 
      replaceContentView("ActivityOne_One",intent); 
     } 
public void replaceContentView(String id, Intent intent){ 
    View view = this.getLocalActivityManager().startActivity(id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
     this.setContentView(view); 
} 

當我們點擊該按鈕ActivityOne_One下相同TAB1將陸續推出。在這個應用程序中,我有兩個問題: 1)如果我想通過在模擬器上使用傳統的BACK按鈕返回到相同TAB1下的ActivityOne,它不起作用。 2)ActivityOne_One啓動時沒有動畫(如從右滑動到左)效應。

如果有誰知道其中任何一個,給你的建議..

感謝,
VENU

回答

0

看到這個鏈接,可以幫你出這一點。 http://blog.henriklarsentoft.com/2010/07/android-tabactivity-nested-activities/

我已經實施了我所提供的鏈接中的建議。它工作正常,但它很古怪,並不總是像您期望的那樣將您重新引導回去。我發現你必須實現你自己的自定義選項卡才能真正獲得這個預期的效果。

+0

您的回覆喜binnyb..thanks。我看過那個博客,並且在back()方法中遇到了一個問題。我們在replaceView()方法中添加了對歷史(ArrayList)的視圖。問題是,假設我們在CitiesActivity中(因此歷史大小爲1)並單擊BACK按鈕,back()方法中的代碼將執行爲1 )歷史中只有一個元素(ArrayList)將被刪除,現在歷史大小爲零。 2)調用setContentView(history.get(history.size() - 1));給出java.lang.ArrayIndexOutOfBoundException..So如何執行此代碼?如果你不介意你能否以適當的方式指導我解決問題 – Venugopal 2010-10-13 18:22:47