Jaume
Jaume

Reputation: 3780

android add tab to tabhost

I am using following code to add tabs on a tabHost but crashes on first to last line, spec.setContent(intent). Debugger says not too much. Thank you.

from Registrat,

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

from 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)

and follows...

Upvotes: 1

Views: 7898

Answers (1)

AndroidLearner
AndroidLearner

Reputation: 657

To set a tab, I am using following the code and it works fine.

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

Upvotes: 1

Related Questions