3

Tabhost を使用しようとしています。2 つのタブがあり、それぞれが 1 つのアクティビティを読み込みます。各アクティビティには、データを解析するための aSync メソッドがあります。setCurrentTab(0)Tabmenu アクティビティの作成時に行うと、すべて正常に動作しますが、2 番目のタブ ( setCurrentTab(1)) でアプリを起動しようとすると、最初のタブをロードしようとし、最初のタブの aSync メソッドを実行して、一部のデータが不足しているためクラッシュします。メソッドが機能するため、まったく呼び出されることは想定されていませんでした。

TabMenu.Activity は次のとおりです。

public class TabMenu extends TabActivity {

TabHost tabHost = null;


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    setResult(resultCode);
    this.finish();
}

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);
    Intent intentToGet = getIntent();
    tabHost = getTabHost(); 
    TabHost.TabSpec spec; 
    Intent intent; 
    TabHost.TabSpec spec2; 
    Intent intent2; 

    intent = new Intent().setClass(this, HoursActivity.class);
    intent.putExtra("student", intentToGet.getStringExtra("student"));
    intent.putExtra("pass", intentToGet.getStringExtra("pass"));
    intent.putExtra("un", intentToGet.getStringExtra("un"));

    spec = tabHost
            .newTabSpec("hours")
            .setIndicator("Hours")
            .setContent(intent);
    tabHost.addTab(spec);

            intent2 = new Intent().setClass(this, NotesActivity.class);
    intent2.putExtra("student", intentToGet.getStringExtra("student"));
    intent2.putExtra("pass", intentToGet.getStringExtra("pass"));
    intent2.putExtra("un", intentToGet.getStringExtra("un"));
    spec2 = tabHost
            .newTabSpec("notes")
            .setIndicator("Notes")
            .setContent(intent2);
    tabHost.addTab(spec2);

    tabHost.setCurrentTab(1);   
}

}

何か案は?

4

1 に答える 1