2011-09-07 46 views
0

我使用TabHost在我的應用程序(儀表板,訂單和客戶)中顯示3個選項卡。其中每一個都是一個包含ListView的獨立活動,並且工作正常。它們都具有像Android Marketplace一樣的「無限滾動」系統,當您在不同的標籤之間切換時,它們在ListView中保留其位置。當你點擊ListView中的一個項目時,它目前加載一個全新的活動全屏並離開TabHost。我想在TabHost中加載這些活動(例如,點擊客戶列表中的特定客戶,然後在客戶標籤中查看客戶詳細信息,然後可以返回客戶列表而不會丟失你的位置/重新加載列表)。我已經閱讀了ActivityGroup和ViewFlipper,但我正在努力解決如何實現我想要的行爲。如何在TabHost中啓動新的活動

回答

0
mTabHost = getTabHost(); 
mTabHost.setOnTabChangedListener(this); 
TabSpec spec; 
String Tab_title3 = "NameofTab"; 


TextView txtTabInfo3 = new TextView(this); 
    setUpTextView(txtTabInfo3); 
    txtTabInfo3.setText(Tab_title3); 

intent = new Intent(); 
intent.setClass(this, YourClass.class); 
spec = mTabHost.newTabSpec(Tab_title3).setIndicator(txtTabInfo3) 
      .setContent(intent); 
    mTabHost.addTab(spec); 

所以,如果YourClass是一個ListActivity裏面,你可以把一個彈出對話框,例如與客戶詳細信息的另一個列表,然後你可以添加一個關閉按鈕。對於您的對話框,您可以使用適配器或其他設置來設置自定義視圖列表視圖。 例如,在一個方法:

buildMyDialog(){ 
    final Dialog dialog = new Dialog(this); 
    lv2=new ListView(this); 
    lv2.setAdapter(mAdapter2); 
    //.... 
final Button cancelButton=new Button(this); 
    dialog.setContentView(lv2); 

    dialog.show(

}

+0

我正打算將用戶帶到一個不同的活動來查看這將出現在地方TabHost內剩餘的客戶名單的客戶詳細信息。這是可能的,而不是使用對話框? –