0
我需要在我的項目中實現選項卡。我有一個佈局,其中有兩個選項卡和一個按鈕。 對於兩個選項卡,我有兩個活動和按鈕調用不同的活動。 事情是我在第一個標籤上顯示按鈕的結果。現在我想要的是,如果我按第一個選項卡,應該顯示第一個選項卡意圖。或者如果我更改標籤,應該顯示標籤的相應意圖。如何在同一個選項卡上調用不同的活動
我嘗試下面的代碼,但點擊按鈕後,每次我上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);
}
});
}
}
是的,它的工作,但我能夠點擊addNewTicket按鈕只有當我在TAB2,然後點擊此按鈕我來到TAB1之後,而我想添加按鈕點擊每個標籤。 – Romi
如果您希望按鈕在每個選項卡中加載AddNewTicket,請按照以下方式修改代碼Intent in = new Intent()。setClass(getApplicationContext(),AddNewTicketActivity.class); sp1.setContent(in); tabHost.setCurrentTab(0); – user994886
如果你想讓按鈕在當前選項卡中加載AddNewTicket,那麼忽略先前的註釋,然後在你的按鈕點擊監聽器--tabHost,setCurrent(TabHost.getCurrentTab()) – user994886