android将tab添加到tabhost

时间:2012-05-25 11:11:43

标签: java android eclipse

我正在使用以下代码在tabHost上添加标签但在第一行到最后一行崩溃,spec.setContent(intent)。调试器说不是太多。谢谢。

来自Registrat,

Intent intentIOS = new Intent(Registrat.this, TabBar_Activity.class);
Bundle bundle = new Bundle();
bundle.putString("idusuari", idusuari);
String appid = null;
来自TabBar_Activity的

private void setTabs(String numTabs){

        addTab(tab1name, "tab1", myTab1.class);
        addTab(tab2name, "tab2", myTab2.class);
}

private void addTab(String labelId, String imageName, Class<?> c)
    {
      TabHost tabHost = getTabHost();
          Intent intent = new Intent(this, c);
          TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId); 

          View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
          TextView title = (TextView) tabIndicator.findViewById(R.id.title);
          title.setText(labelId);    

          spec.setIndicator(tabIndicator);
          spec.setContent(intent);
          tabHost.addTab(spec);
    }

05-25 11:18:49.725: E/AndroidRuntime(428): FATAL EXCEPTION: main
05-25 11:18:49.725: E/AndroidRuntime(428): java.lang.IllegalStateException: Could not execute method of the activity
05-25 11:18:49.725: E/AndroidRuntime(428):  at android.view.View$1.onClick(View.java:2072)
05-25 11:18:49.725: E/AndroidRuntime(428):  at android.view.View.performClick(View.java:2408)
05-25 11:18:49.725: E/AndroidRuntime(428):  at android.view.View$PerformClick.run(View.java:8816)
05-25 11:18:49.725: E/AndroidRuntime(428):  at android.os.Handler.handleCallback(Handler.java:587)
05-25 11:18:49.725: E/AndroidRuntime(428):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-25 11:18:49.725: E/AndroidRuntime(428):  at android.os.Looper.loop(Looper.java:123)
05-25 11:18:49.725: E/AndroidRuntime(428):  at android.app.ActivityThread.main(ActivityThread.java:4627)
05-25 11:18:49.725: E/AndroidRuntime(428):  at java.lang.reflect.Method.invokeNative(Native Method)
05-25 11:18:49.725: E/AndroidRuntime(428):  at java.lang.reflect.Method.invoke(Method.java:521)
05-25 11:18:49.725: E/AndroidRuntime(428):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

并遵循......

1 个答案:

答案 0 :(得分:1)

要设置标签,我正在使用以下代码,它可以正常工作。

TabHost tabHost = getTabHost();

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

// Tab for Songs
TabSpec songspec = tabHost.newTabSpec("Songs");
songspec.setIndicator("Songs", getResources().getDrawable(R.drawable.icon_songs_tab));
Intent songsIntent = new Intent(this, SongsActivity.class);
songspec.setContent(songsIntent);
 // Adding all TabSpec to TabHost
tabHost.addTab(photospec); // Adding photos tab
tabHost.addTab(songspec); // Adding songs tab