Android 如何在同一选项卡上调用不同的活动

Android 如何在同一选项卡上调用不同的活动,android,android-tabhost,android-tabactivity,Android,Android Tabhost,Android Tabactivity,我需要在我的项目中实现选项卡。我有一个布局,其中有两个选项卡和一个按钮。 对于两个选项卡,我有两个活动和按钮调用不同的活动。 问题是我在第一个选项卡上显示按钮的结果。现在我想要的是,如果我按下第一个标签,第一个标签的意图应该显示出来。或者,如果我更改了选项卡,则应显示选项卡的相应意图 我尝试了以下代码,但在单击按钮后,每次单击tab1时,按钮的意图都会显示出来 public class TabLayoutUsingTabChangeEventActivity extends TabActivit

我需要在我的项目中实现选项卡。我有一个布局,其中有两个选项卡和一个按钮。 对于两个选项卡,我有两个活动和按钮调用不同的活动。 问题是我在第一个选项卡上显示按钮的结果。现在我想要的是,如果我按下第一个标签,第一个标签的意图应该显示出来。或者,如果我更改了选项卡,则应显示选项卡的相应意图

我尝试了以下代码,但在单击按钮后,每次单击tab1时,按钮的意图都会显示出来

public class TabLayoutUsingTabChangeEventActivity extends TabActivity {

        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);                
            final TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);
            final TabHost.TabSpec sp1 = tabHost.newTabSpec("TAB1");
            TabHost.TabSpec sp2 = tabHost.newTabSpec("TAB2");

            //Creating First Tab
            Intent intent1 = new Intent(this, Tab1Activity.class);
            sp1.setIndicator("TAB1").setContent(intent1);
            tabHost.addTab(sp1);

            //Creating Second Tab 
            Intent intent2 = new Intent(this, Tab2Activity.class);
            sp2.setIndicator("TAB2").setContent(intent2);
            tabHost.addTab(sp2);               

            //Tab Changed Event
            tabHost.setOnTabChangedListener(new OnTabChangeListener(){
                 @Override
                 public void onTabChanged(String tabId) {
                     Log.i("TabId :", tabId);
                     if(tabId.equals("TAB1")){
                     Log.i("TAB1", "TAB1 Changed");
                     Intent intent1 = new Intent().setClass(getApplicationContext(), Tab3Activity.class);
                     sp1.setIndicator("TAB1").setContent(intent1);
                     tabHost.setCurrentTab(0);
                     }
                  }
            });

            Button addNewButton = (Button)findViewById(R.id.add_new_ticket_btn);
            addNewButton.setOnClickListener(new OnClickListener(){
                  @Override
                  public void onClick(View v) {
                     Intent in = new Intent().setClass(getApplicationContext(), AddNewTicketActivity.class);
                     sp1.setContent(in);
                     tabHost.setCurrentTab(0);
                     //startActivity(in);
                 }
            });               
      }
}

据我所知,当您单击按钮时,AddNewTicketActivity显示在选项卡1中。然后转到TAB2,当您回到TAB1时,您希望看到tab1Activity。那样的话,试试这个 改变方法

          if (tabId.equals("TAB2")){
                    Intent intent1 = new Intent(this, Tab1Activity.class);
                    sp1.setIndicator("TAB1").setContent(intent1);
           }

是的,它工作了,但我只能在tab2上单击addNewTicket按钮,单击此按钮后,我来到tab1,而我希望AddButton单击每个选项卡。如果您希望按钮在每个选项卡中加载addNewTicket,请按以下方式修改代码Intent in=new Intent().setClass(getApplicationContext(),AddNewTicketActivity.class);sp1.setContent(in);tabHost.setCurrentTab(0);如果希望按钮在当前选项卡中加载AddNewTicket,请忽略前面的注释,然后在按钮中尝试单击侦听器-tabHost,setCurrent(tabHost.getCurrentTab())user994886:Thamks alot:),需要更多帮助。现在我可以单击每个选项卡上的“添加”按钮。但在单击add按钮时,激活tab0,现在我希望如果我单击tab0 agn,应该显示tab0活动。