如何调用当前处于活动的同一选项卡的活动
-
25-10-2019 - |
题
我需要在项目中实现选项卡。我有一个布局,其中我有两个选项卡和一个按钮。对于两个标签,我有两个活动和按钮调用不同的活动。问题是我在第一个选项卡上显示按钮的结果。 IE 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);
}
});
}
}
解决方案
您需要使用AvtivityGroup在同一选项卡中打开新活动。
这是一个完整的示例。
http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.html
不隶属于 StackOverflow