0

我有一个 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 和子活动解决了这个问题。

4

3 回答 3

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/

您必须使用 a TabHost、 aTabSpec和 aIntent作为选项卡。进而TabHost.addTab(TabSpec)

于 2012-09-26T09:56:25.240 回答
0
  1. 它看起来不像通常的 android 应用程序体验。做这样的事情要非常小心。

  2. 从 3.0 开始最好使用Fragments. 如果您想支持早期的设备 - 使用兼容性库。

于 2012-09-26T10:08:01.247 回答
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);

演示活动

    class yourfirstActivity extends Activity {
     }

     class yoursecondActivityextends Activity {
     }
于 2012-09-26T10:38:57.230 回答