views:

70

answers:

1

As per the android developer docs for creating tab UI you need to have a TabHost and TabWidget and the TabHost must be the root node for the layout.

All perfect, I tried the example and everything's fine.

Just while looking at the API Samples of tabs, I came across tabs1.java (http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/Tabs1.html) which was not using any tab elements in the layout.

Here is the sample working code that creates a tab, without using any layout at all.

public class HelloAndroid extends TabActivity implements TabHost.TabContentFactory  {

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TabHost tabHost = getTabHost();
    tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1").setContent(this));
  }

  public View createTabContent(String tag) {
    TextView text = new TextView(this);
    text.setText("tab1");
    return text;
  }
}

Can anyone explain that how this is working ? And how this is different that using the Layout based approach as explained in the tutorial.

Thanks.

A: 

This is because TabActivity programatically creates a TabHost layout.

You can check http://www.google.com/codesearch/p?hl=en#uX1GffpyOZk/core/java/android/app/TabActivity.java&q=TabActivity&sa=N&cd=1&ct=rc

alinux
Perfect, thanks for finding it out.
sazwqa