2011-11-29 53 views
3

我需要在我的項目中實現選項卡。我有一個佈局,其中有兩個選項卡和一個按鈕。對於兩個選項卡,我有兩個活動和按鈕調用不同的活動。事情是我在第一個標籤上顯示按鈕的結果。即tab0在tab0事件和按鈕單擊事件時處於活動狀態。我能夠使用tabHost.setOnTabChangedListener更改標籤事件,但現在我想要的是,假設我點擊按鈕,所以現在按鈕視圖正在顯示,但如果我點擊tab0,則應該顯示tab0活動。如何調用當前活動的相同選項卡的活動

我用onClick但使用後我的TabChangeListner不起作用。

你會爲我的問題提出解決方案嗎?

謝謝。

下面是我的代碼是工作的罰款:

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("TAB2")){ 
        Log.i("TAB1", "TAB1 Changed"); 
        Intent intent1 = new Intent().setClass(getApplicationContext(), Tab1Activity.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); 
       } 
      });    
     } 
} 

回答

3

您需要使用AvtivityGroup在同一個選項卡,打開新的活動。

下面是完整的示例。

http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.html

+0

阿爾斯蘭:不需要的ActivityGroup,我能夠在同一個選項卡中打開一個新的活動。正如你所看到的,我可以在tab0 – Romi

+2

@Romi上打開Tab1Activity和AddNewTicketActivity:這是一個糟糕的方法,你最終需要一個ActivityGroup來管理Activity。 –

+0

@Adil Soomro:可能是,但請告訴我解決方案正在做什麼。因爲我急需它..我不能改變整個代碼 – Romi

相關問題