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);
}

そして、タブの1つは

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

そして、ダミーアクティビティは

class DummyActivity extends Activity {
}

タブ 2 をクリックすると、TabTwo クラスが呼び出されます。クラス内からボタンをクリックすると、タブ内で DummyActivity が開きます。現在使われているコードは

context.startActivity(intentObject);

これにより、まったく新しいウィンドウで新しいアクティビティが開きます。タブ内から DummyActivity を開くにはどうすればよいですか?

前もって感謝します!

@all 返信ありがとうございます。ActivityGroup と子アクティビティを使用して問題を解決しました。

4

3 に答える 3

0
  1. 通常のAndroidアプリのエクスペリエンスとは異なります。そのようなことをすることには非常に注意してください。

  2. 3.0以降は、を使用することをお勧めしますFragments。以前のデバイスをサポートする場合は、互換性ライブラリを使用してください。

于 2012-09-26T10:08:01.247 に答える
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、 a 、TabSpecおよび aを使用する必要があります。Intentその後TabHost.addTab(TabSpec)

于 2012-09-26T09:56:25.240 に答える
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);

2 番目のタブ

        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 に答える