2012-04-21 8 views
0

3つのアクティビティでtabHostを作成したので、タブをクリックするとアクティビティが変更されます。インテントをタブで使用するとシャットダウン

これは最初のアクティビティのコードです:

public class estadisticas extends Activity { 

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

    Intent intent1 = new Intent(estadisticas.this, clasificacion.class); 
    Intent intent2 = new Intent(estadisticas.this, novedades.class); 
    Resources res = getResources(); 
    TabHost tabHost = (TabHost) findViewById(R.id.mytabhost); 
    tabHost.setup(); 

    //tab 1 
    TabSpec tab1 = tabHost.newTabSpec("estadisticas"); 
    tab1.setIndicator(getString(R.string.statistics),res.getDrawable(R.drawable.estadisticastabs)); 
    tab1.setContent(R.id.tab1); 
    tabHost.addTab(tab1); 

    //tab 2 
    TabSpec tab2 = tabHost.newTabSpec("clasificacion"); 
    tab2.setIndicator(getString(R.string.scores),res.getDrawable(R.drawable.estadisticastabs)); 
    tab2.setContent(intent1); 
    tabHost.addTab(tab2); 

    //tab 3 
    TabSpec tab3 = tabHost.newTabSpec("novedades"); 
    tab3.setIndicator(getString(R.string.whatsnew),res.getDrawable(R.drawable.estadisticastabs)); 
    tab3.setContent(intent2); 
    tabHost.addTab(tab3); 

    // END TABS 

そして、私は両方(またはTAB2またはTAB3)をクリックしたときに、私はシャットダウンを取得します。

どこが間違っていますか?おかげさまで

+0

TabHostのあなたの基本的な理解が正しくありません。 TabHostのすべてのタブ(tab1、tab2、tab3)はアクティビティestadisticasにあるため、クラッシュの原因となっているものがあります。あなたのLogcatを見せてください。 –

+0

manifeastファイルにアクティビティを追加しましたか? –

+0

はいマニフェストファイルで私の活動を得ました。 これは私LogCatある: 4月18日17:51:47.877:D/AndroidRuntime(3330):51:47.888:VM 04から18 17のシャットダウン/ dalvikvm(3330)W:= 3スレッドID:キャッチされない例外で終了スレッド(グループ= 0x4001b188) 4月18日17:51:47.888:Eは/ AndroidRuntime(3330):キャッチされないハンドラ:51:47.906:キャッチされない例外により 4月18日17に出るメインスレッドE/AndroidRuntime(3330):java.lang.IllegalStateException: 'public void setup(LocalActivityManager activityGroup)'を呼び出すことを忘れましたか? –

答えて

0

あなたはこれらの2行

TabHost tabHost = getTabHost(); 
     TabHost.TabSpec spec; 

を逃すが、このコードを試してみてください。

@Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.tab); 
      // LocationManager locManager = (LocationManager) getSystemService(LOCATION_SERVICE); 

    //if (!locManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ 


      //  } 

      // SetupTabs(); 
      Resources res = getResources(); 
      TabHost tabHost = getTabHost(); 
      TabHost.TabSpec spec; 
      Intent intent; 

      intent = new Intent().setClass(this, Addplace.class); 
      spec = tabHost.newTabSpec("BYM").setIndicator("By Manually",res.getDrawable(R.drawable.marker_unselected)).setContent(intent); 
      tabHost.addTab(spec); 

      // createGpsDisabledAlert(); 
      intent = new Intent().setClass(this, HelloAndroidGpsActivity.class); 
      spec = tabHost.newTabSpec("BGPS").setIndicator("By GPS",res.getDrawable(R.drawable.marker_unselected)).setContent(intent); 
      tabHost.addTab(spec); 
      // } 


      intent = new Intent().setClass(this, mapclass.class); 
      spec = tabHost.newTabSpec("BYM").setIndicator("By Map", res.getDrawable(R.drawable.marker_unselected)).setContent(intent); 
      tabHost.addTab(spec); 

      // tabHost.setCurrentTab(1); 

     } 
+0

これは私にエラーを与えます。 getTabHost()はメソッドではありません。 –

+0

あなたはあなたの活動をTabActivityから拡張しましたか?あなたのクラスをTabActivityからこのように拡張してください** public class Add_tabはTabActivityを拡張します** –

+0

このコードでは、私は主なアクティビティ(this)を得ることができません –

関連する問題