在我的应用程序中有 3 个选项卡,第三个选项卡有 3 个不同的按钮及其相应的活动(我为此使用了活动组)。在运行应用程序时,所有选项卡及其相应的活动都显示正常。我的问题出在第三个选项卡中。在该选项卡中,我有 3 个按钮。AB 和 c 默认加载按钮 A 现在我通过单击按钮 B 更改为按钮 B。
现在,如果我单击第三个选项卡,它必须再次显示按钮 A,但它不会改变。
这是我的完整代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.groupinion_tabs);
tabHost = (TabHost) findViewById(android.R.id.tabhost);
setTabs();
}
/*
* control go when specipic tab is pressed
*/
private void setTabs() {
//call the addTab method to add tabs
addTab("Questions", R.drawable.tab_questions, Gropinion_Questions.class);
addTab("Ask", R.drawable.tab_ask, Groupinion_Ask.class);
addTab("My Stuff", R.drawable.tab_stuff, Groupinion_Mystuff.class);
//addTab("Friends", R.drawable.tab_friends, Groupinion_Find_Friends.class);
}
// set the tab name and symbols to the tab
private void addTab(String labelId, int drawableId, Class<?> c)
{
tabHost = getTabHost();
String strid="";
for(int i=0;i<=2;i++)
{
if(i==0){
strid="one";}
if(i==1){
strid="two";}
if(i==2){
strid="three";}
}
//tabHost.setCurrentTab(Singleton.tabID);
tabHost.setCurrentTab(0);
Intent intent = new Intent(this, c);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);
View tabIndicator = LayoutInflater.from(this).inflate(
R.layout.groupnion_tab_indicator, getTabWidget(), false);
TextView title = (TextView) tabIndicator.findViewById(R.id.title);
title.setText(labelId);
ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
icon.setImageResource(drawableId);
spec.setIndicator(tabIndicator);
spec.setContent(intent);
tabHost.addTab(spec);
if (tabHost.getCurrentTab() == 0) {
getTabWidget().getChildAt(0).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(getIntent());
}
});
}
if (tabHost.getCurrentTab() == 1) {
getTabWidget().getChildAt(1).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(getIntent());
}
});
}
if (tabHost.getCurrentTab() == 2) {
getTabWidget().getChildAt(2).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent().setClass(getApplicationContext(), Groupinion_Mystuff.class);
navigateUpTo(i);
startActivity(i);
//startActivity(getIntent());
}
});
}
//call tabchanged listener when user click another tab
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
if (tabId.equals("one")) {
getTabWidget().getChildAt(0).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(getIntent());
}
});
} else if (tabId.equals("two")) {
getTabWidget().getChildAt(1).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(getIntent());
}
});
}else if (tabId.equals("three")) {
getTabWidget().getChildAt(2).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(getIntent());
}
});
}
}
}
});
}
}
提前致谢