2012-09-26 51 views
0

我有一個tabActivity類。TabActivity和子選項卡

class MainActivity extends TabActivity { 
    TabHost tabHost = getTabHost(); 

TabSpec tabOne= tabHost.newTabSpec("Tab One"); 
tabOne.setIndicator("Tab One", getResources().getDrawable(R.drawable.tab1)); 
Intent tabOneIntent = new Intent(this, PhotosActivity.class); 
tabOne.setContent(tabOneIntent); 

TabSpec tabTwo= tabHost.newTabSpec("Tab Two"); 
tabTwo.setIndicator("Tab Two", getResources().getDrawable(R.drawable.tab2)); 
Intent tabTwoIntent = new Intent(this, TabTwo.class); 
tabTwo.setContent(videosIntent); 

tabHost.addTab(tabOne); 
tabHost.addTab(tabTwo); 
} 

而且標籤之一是

class TabTwo extends Acitity implements OnClickListener{ 
    public void onClick(View view) { 
     //open a new activity within the tab 
    } 
} 

和虛擬活動是

class DummyActivity extends Activity { 
} 

當我點擊選項卡二,TabTwo類調用。當我單擊類中的按鈕時,我想在選項卡中打開DummyActivity。正在使用的代碼是

context.startActivity(intentObject); 

這將在新的窗口中打開新的活動。我如何從標籤內打開DummyActivity?

在此先感謝!

@all感謝您的回覆。我使用ActivityGroup和子活動解決了這個問題。

+0

我從像context.startActivity聽者(新意圖打開活動通常((TabTwo)context,DummyActivity.class)); – Renjith

+1

您可以將TabTwo設置爲'ViewSwitcher'佈局並以此方式解決。 或者讓'tabTwo'靜態並將其內容設置爲新的。也許它工作。 – PKeidel

回答

0
  1. 它看起來不像通常的android應用程序體驗。做這樣的事情要非常小心。

  2. 從3.0開始,最好使用Fragments。如果你想支持早期的設備 - 使用兼容性庫。

0

不得使用context.startActivity(intentObject);

看吧:

TabHost tabHost = getTabHost(); 

    TabSpec photospec = tabHost.newTabSpec("Photos"); 
    photospec.setIndicator("Photos", getResources().getDrawable(R.drawable.icon1)); 
    Intent photosIntent = new Intent(this, PhotosActivity.class); 
    photospec.setContent(photosIntent); 

    TabSpec videospec = tabHost.newTabSpec("Videos"); 
    videospec.setIndicator("Videos", getResources().getDrawable(R.drawable.icon2)); 
    Intent videosIntent = new Intent(this, VideosActivity.class); 
    videospec.setContent(videosIntent); 

    tabHost.addTab(photospec); 
    tabHost.addTab(videospec); 

http://www.androidhive.info/2011/08/android-tab-layout-tutorial/

你必須使用一個TabHost,一個TabSpec和一個標籤一個Intent。然後TabHost.addTab(TabSpec)

+0

編輯問題!我正在使用TabHost。動機是用TabTwo.class打開一個兒童活動 – Renjith

0

使用這樣第一選項卡

public class TabsActivity extends TabActivity { 

     TabSpec spec1 = tabHost.newTabSpec("tabone"); 
    spec1.setIndicator(createTabView(tabHost.getContext(), "tabone", R.drawable.tab_home)); 
    Intent inte = new Intent(TabsActivity.this, PhotosActivity.class); 
    inte.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    spec1.setContent(inte); 


    TabSpec spec2 = tabHost.newTabSpec("tabtwo"); 
    spec2.setIndicator(createTabView(tabHost.getContext(), "tabtwo", R.drawable.tab_account)); 
    Intent _int = new Intent(TabsActivity.this, TabTwoActivity.class); 
    _int.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    spec2.setContent(_int); 

    tabHost.addTab(spec1); 
    tabHost.addTab(spec2); 

一個第二標籤

 public class TabTwoActivity extends TabActivity { 

     TabSpec spec1 = tabHostacc.newTabSpec("tabone"); 
    spec1.setIndicator(createTabView(tabHostacc.getContext(), "tabone", R.drawable.tab_home)); 
    Intent inte = new Intent(TabTwoActivity .this, yourfirstActivity.class); 
    inte.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    spec1.setContent(inte);  

    TabSpec spec2 = tabHostacc.newTabSpec("tabtwo"); 
    spec2.setIndicator(createTabView(tabHostacc.getContext(), "tabtwo", R.drawable.tab_account)); 
    Intent _int = new Intent(TabTwoActivity .this, yoursecondActivity.class); 
    _int.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    spec2.setContent(_int);  

    tabHostacc.addTab(spec1); 
    tabHostacc.addTab(spec2); 

demoActivityes

class yourfirstActivity extends Activity { 
    } 

    class yoursecondActivityextends Activity { 
    } 
相關問題