私のアプリには 3 つのタブがあり、3 つ目のタブには対応するアクティビティを含む 3 つの異なるボタンがあります (そのためにアクティビティ グループを使用しました)。アプリのすべてのタブを実行すると、対応するアクティビティが正常に表示されます。私の問題は 3 番目のタブにあります。そのタブには 3 つのボタンがあります。ABとcはデフォルトでボタンAをロードし、ボタンBをクリックしてボタンBに変更しています。
3番目のタブをクリックすると、ボタン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());
}
});
}
}
}
});
}
}
前もって感謝します