1

私のアプリには 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());
                            }
                        });
            }

        }


        }
    });

}

}

前もって感謝します

4

0 に答える 0