0

私は新人で、Android アプリで複数のタブ画面を作成しましたが、複数のタブ画面の 1 つにボタンを作成しようとすると、ボタンを押しても、作成した別の画面に移動しませんでした。ボタンを機能させるために、複数のタブ画面にコードを追加する必要があるかどうか疑問に思っていました。複数のタブのJavaコードは次のとおりです。

    public class Investment extends TabActivity {
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_investment);

    TabHost tabHost = getTabHost();

    // Tab for Homepage
    TabSpec photospec = tabHost.newTabSpec("Home");
    // setting Title and Icon for the Tab
    photospec.setIndicator("Home", getResources().getDrawable(R.drawable.homeicon));
    Intent photosIntent = new Intent(this, Home.class);
    photospec.setContent(photosIntent);

    // Tab for Riskassessment
    TabSpec songspec = tabHost.newTabSpec("Risk");
    songspec.setIndicator("Risk", getResources().getDrawable(R.drawable.riskicon));
    Intent songsIntent = new Intent(this, RiskAssessment.class);
    songspec.setContent(songsIntent);

    // Tab for News
    TabSpec videospec = tabHost.newTabSpec("News");
    videospec.setIndicator("News", getResources().getDrawable(R.drawable.newsicon));
    Intent videosIntent = new Intent(this, News.class);
    videospec.setContent(videosIntent);

 // Tab for Tips
    TabSpec tipsspec = tabHost.newTabSpec("Tips");
    tipsspec.setIndicator("Tips", getResources().getDrawable(R.drawable.investmenttipsicon));
    Intent tipsIntent = new Intent(this, InvestmentTips.class);
    tipsspec.setContent(tipsIntent);

 // Tab for about us
    TabSpec aboutusspec = tabHost.newTabSpec("About Us");
    aboutusspec.setIndicator("About Us", getResources().getDrawable(R.drawable.aboutusicon));
    Intent aboutusIntent = new Intent(this, AboutUs.class);
    aboutusspec.setContent(aboutusIntent);

    // Adding all TabSpec to TabHost
    tabHost.addTab(photospec); // Adding  tab
    tabHost.addTab(songspec); 
    tabHost.addTab(videospec); 
    tabHost.addTab(tipsspec); 
    tabHost.addTab(aboutusspec); 

}

私のボタンのコード

    public class ButtonSelection extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);

    Button b = (Button) findViewById(R.id.buttonequity);
    b.setOnClickListener(new View.OnClickListener() {
       public void onClick(View arg0) {
       Intent i = new Intent(ButtonSelection.this, EquitySelection.class);
       startActivity(i);
       }
    });
    }
    }

ボタンを押したときの画面のコード

    public class EquitySelection extends Activity {

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.equitydescription);
     }
     }
4

1 に答える 1

0

この問題と長い間戦った後、アクティビティ ベースのタブを使用しているときにタブを切り替える解決策を見つけることができました。

タブホストが作成される親アクティビティ クラスで、以下のようなメソッドを実装しました。

public void switchTab(int tab){
        tabHost.setCurrentTab(tab);   

}

内部で別のタブに切り替えられるようにしたいタブ内で、以下のメソッドを作成しました。

public void switchTabInActivity(int indexTabToSwitchTo){
        MintTrack ParentActivity;
        ParentActivity = (MintTrack) this.getParent();
        ParentActivity.switchTab(indexTabToSwitchTo);

}

この例も参照してください

于 2012-08-08T16:54:00.450 に答える