title: How do I set a new xml layout while using tabs
body: <p>I am trying to create a tabbed interface which has multiple activities. As part of the tabs I have created and set an xml tabhost file like so:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;TabHost xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@android:id/tabhost"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"&gt;
      &lt;LinearLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"&gt;
              &lt;TabWidget
                  android:id="@android:id/tabs"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content" /&gt;
              &lt;FrameLayout
                  android:id="@android:id/tabcontent"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:padding="5dp" /&gt;
      &lt;/LinearLayout&gt;
  &lt;/TabHost&gt;
  </code></pre>
  
  <p>This is called in my Tabs.class file which looks like this:</p>
  
  <pre class="lang-java prettyprint-override"><code>package com.system.kenetix;
  
  import android.app.TabActivity;
  import android.content.Intent;
  import android.content.res.Resources;
  import android.os.Bundle;
  import android.widget.TabHost;
  
  public class Tabs extends TabActivity {
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.tabs);
  
          Resources res = getResources(); // Resource object to get Drawables
          TabHost tabHost = getTabHost();  // The activity TabHost
          TabHost.TabSpec spec;  // Resusable TabSpec for each tab
          Intent intent;  // Reusable Intent for each tab
  
          // Create an Intent to launch an Activity for the tab (to be reused)
          intent = new Intent().setClass(this, Availability.class);
          // Initialize a TabSpec for each tab and add it to the TabHost
          spec = tabHost.newTabSpec("Availability").setIndicator("Booking",
                  res.getDrawable(R.drawable.kenetix_tab_available))
              .setContent(intent);
          tabHost.addTab(spec);
  
          // Do the same for the other tabs
          // Create an Intent to launch an Activity for the tab (to be reused)
          intent = new Intent().setClass(this, RoomsAvailable.class);
          spec = tabHost.newTabSpec("Room").setIndicator("Rooms",
                            res.getDrawable(R.drawable.kinetix_tab_rooms))
                        .setContent(intent);
          tabHost.addTab(spec);
  
          // Do the same for the other tabs
          // Create an Intent to launch an Activity for the tab (to be reused)
          intent = new Intent().setClass(this, CustomerDetails.class);
          spec = tabHost.newTabSpec("Customer").setIndicator("Customer",
                            res.getDrawable(R.drawable.kinetix_tab_customer))
                        .setContent(intent);
          tabHost.addTab(spec);
  
          intent = new Intent().setClass(this, Payment.class);
          spec = tabHost.newTabSpec("Payment").setIndicator("Payment",
                            res.getDrawable(R.drawable.kinetix_tab_payment))
                        .setContent(intent);
          tabHost.addTab(spec);
  
          intent = new Intent().setClass(this, Extras.class);
          spec = tabHost.newTabSpec("Extras").setIndicator("Extras",
                            res.getDrawable(R.drawable.kinetix_tab_extras))
                        .setContent(intent);
          tabHost.addTab(spec);
  
          tabHost.setCurrentTab(0);
      }
  }
  </code></pre>
  
  <p>I then have individual classes for each of my tabs and an xml file to set the content (Buttons, spinners etc) like so:</p>
  
  <pre class="lang-java prettyprint-override"><code>package com.system.kenetix;
  
  import android.app.Activity;
  import android.content.Intent;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.AdapterView.OnItemSelectedListener;
  import android.widget.AdapterView;
  import android.widget.ArrayAdapter;
  import android.widget.Button;
  import android.widget.Spinner;
  import android.widget.Toast;
  
  public class Availability extends Activity {
      /** Called when the activity is first created. */
      Intent intent = null;
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.availability);
  
      /*Nights Spinner*/
  
      //Create an instance of the Number of Nights spinner
      Spinner NumNightsSpinner = (Spinner) findViewById(R.id.NumAdultsSpinner);
  
      //Create an ArrayAdapter for the Number of Nights spinner
      ArrayAdapter&lt;CharSequence&gt; adapter = ArrayAdapter.createFromResource(this, R.array.NumNights_array, android.R.layout.simple_spinner_item);
  
      //Set the adapter layout
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  
      //Apply the adapter layout to the Number of Nights spinner
      NumNightsSpinner.setAdapter(adapter);
      NumNightsSpinner.setOnItemSelectedListener(new MyOnNumNightsSelectedListener());
  
      /*Adults Spinner*/
  
      //Create an instance of the Number of Adults spinner
      Spinner NumAdultsSpinner = (Spinner) findViewById(R.id.NumAdultsSpinner);
  
      //Create an ArrayAdapter for the Number of adults spinner
      ArrayAdapter&lt;CharSequence&gt; adapter1 = ArrayAdapter.createFromResource(this, R.array.NumAdults_array, android.R.layout.simple_spinner_item);
  
      //Set the adapter layout
      adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  
      //Apply the adapter layout to the Number of Adults spinner
      NumAdultsSpinner.setAdapter(adapter);
      NumAdultsSpinner.setOnItemSelectedListener(new MyOnNumAdultsSelectedListener());
  
      /*Children Spinner*/
  
      //Create an instance of the Number of Children spinner
      Spinner NumChildSpinner = (Spinner) findViewById(R.id.NumChildSpinner);
  
      //Create an ArrayAdapter for the Number of Children spinner
      ArrayAdapter&lt;CharSequence&gt; adapter2 = ArrayAdapter.createFromResource(this, R.array.NumChild_array, android.R.layout.simple_spinner_item);
  
      //Set the adapter layout
      adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  
      //Apply the adapter layout to the Number of Children spinner
      NumChildSpinner.setAdapter(adapter);
      NumChildSpinner.setOnItemSelectedListener(new MyOnNumChildSelectedListener());
  
      Button CheckAvailable = (Button) findViewById(R.id.CheckAvailabilityBtn);
      CheckAvailable.setOnClickListener(new View.OnClickListener() {
          public void onClick(View v) {
              // TODO Auto-generated method stub
              intent = new Intent(v.getContext(), RoomsAvailable.class);
              startActivity(intent);
          }
      });
  }
  
  //Listener for the selected item from the number of nights spinner
  public class MyOnNumNightsSelectedListener implements OnItemSelectedListener {
      public void onItemSelected(AdapterView&lt;?&gt; parent,View view, int pos, long id){
  
          //If no number of nights has been selected or onCreate occurs cancel the toast
          if (parent.getItemAtPosition(pos).toString().equals("0")){
              Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " night(s)", Toast.LENGTH_LONG).cancel();
          }
  
          //Else create a toast stating the number of nights selected
          else{
          Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " night(s)", Toast.LENGTH_LONG).show();
          }
      }
  
      public void onNothingSelected(AdapterView&lt;?&gt; parent) {
          // TODO Auto-generated method stub
  
      }
  
  }
  //Listener for the selected item from the number of adults spinner
  public class MyOnNumAdultsSelectedListener implements OnItemSelectedListener {
      public void onItemSelected(AdapterView&lt;?&gt; parent,View view, int pos, long id){
  
          //If no number of nights has been selected or onCreate occurs cancel the toast
          if (parent.getItemAtPosition(pos).toString().equals("0")){
              Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " adults", Toast.LENGTH_LONG).cancel();
          }
  
          else if (parent.getItemAtPosition(pos).toString().equals("1")){
              Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " adult", Toast.LENGTH_LONG).cancel();
          }
  
          //Else create a toast stating the number of nights selected
          else{
          Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " adult(s)", Toast.LENGTH_LONG).show();
          }
      }
  
      public void onNothingSelected(AdapterView&lt;?&gt; parent) {
          // TODO Auto-generated method stub
          //Do Nothing
      }
  }
  //Listener for the selected item from the number of adults spinner
  public class MyOnNumChildSelectedListener implements OnItemSelectedListener {
      public void onItemSelected(AdapterView&lt;?&gt; parent,View view, int pos, long id){
  
          //If no number of nights has been selected or onCreate occurs cancel the toast
          if (parent.getItemAtPosition(pos).toString().equals("0")){
              Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " children", Toast.LENGTH_LONG).cancel();
          }
          else if (parent.getItemAtPosition(pos).toString().equals("1")){
              Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " child", Toast.LENGTH_LONG).show();
          }
  
          //Else create a toast stating the number of nights selected
          else{
          Toast.makeText(parent.getContext(), "You selected " + parent.getItemAtPosition(pos).toString() + " children", Toast.LENGTH_LONG).show();
          }
      }
  
      public void onNothingSelected(AdapterView&lt;?&gt; parent) {
          // TODO Auto-generated method stub
          //Do Nothing
      }
  }
  
  }
  </code></pre>
  
  <p>and the xml that goes with this:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/linearLayout1" android:background="@color/custom_theme_color"
      android:layout_width="match_parent" android:layout_height="wrap_content"
      android:baselineAligned="false" android:orientation="vertical"&gt;
      &lt;TableLayout android:layout_width="wrap_content"
          android:layout_alignParentLeft="true" android:layout_height="wrap_content"
          android:id="@+id/tableLayout1" android:stretchColumns="1"
          android:layout_weight="1"&gt;
  
          &lt;TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content"
              android:layout_height="wrap_content"&gt;
              &lt;ImageButton android:src="@drawable/icon"
                  android:layout_height="wrap_content" android:layout_width="wrap_content"
                  android:id="@+id/QuickRoomSelect" android:layout_weight="1" /&gt;
              &lt;ImageButton android:src="@drawable/icon"
                  android:layout_height="wrap_content" android:layout_width="wrap_content"
                  android:id="@+id/QuickCustomerDetails" android:layout_weight="1" /&gt;
              &lt;ImageButton android:src="@drawable/icon"
                  android:layout_height="wrap_content" android:layout_width="wrap_content"
                  android:id="@+id/imageButton1" android:layout_weight="1" /&gt;
          &lt;/TableRow&gt;
      &lt;/TableLayout&gt;
  
      &lt;TextView android:layout_width="match_parent"
          android:textColor="@color/custom_theme_text_color" android:id="@+id/availabilityLbl"
          android:text="@string/AvailableLbl" android:layout_height="wrap_content"
          android:layout_weight="1" /&gt;
  
      &lt;Button android:layout_height="wrap_content" android:id="@+id/DateFromBtn"
          android:layout_width="match_parent" android:text="@string/DateFromBtn"
          android:layout_weight="1" /&gt;
      &lt;TextView android:textColor="@color/custom_theme_text_color"
          android:layout_height="wrap_content" android:id="@+id/NumNightsLdl"
          android:text="@string/NumNightsLbl" android:layout_width="wrap_content"
          android:layout_weight="1"&gt;&lt;/TextView&gt;
      &lt;Spinner android:layout_height="wrap_content" android:id="@+id/NumAdultsSpinner"
          android:layout_width="wrap_content" android:layout_weight="1"&gt;&lt;/Spinner&gt;
  
      &lt;TableLayout android:layout_height="wrap_content"
          android:id="@+id/tableLayout2" android:layout_width="match_parent"
          android:layout_weight="1"&gt;
          &lt;TableRow android:id="@+id/tableRow3" android:layout_height="wrap_content"
              android:layout_width="match_parent" android:layout_weight="1"&gt;
              &lt;TextView android:textColor="@color/custom_theme_text_color"
                  android:layout_height="wrap_content" android:id="@+id/NumAdultsLbl"
                  android:text="@string/NumAdultsLbl" android:layout_weight="2"&gt;&lt;/TextView&gt;
              &lt;TextView android:textColor="@color/custom_theme_text_color"
                  android:layout_height="wrap_content" android:id="@+id/NumChildLbl"
                  android:layout_weight="2" android:text="@string/NumChildLbl"&gt;&lt;/TextView&gt;
          &lt;/TableRow&gt;
          &lt;TableRow android:id="@+id/tableRow2" android:layout_width="match_parent"
              android:layout_height="wrap_content" android:layout_weight="1"&gt;
              &lt;Spinner android:layout_height="wrap_content" android:id="@+id/NumNightsSpinner"
                  android:layout_width="wrap_content" android:layout_weight="1"&gt;&lt;/Spinner&gt;
              &lt;Spinner android:layout_height="wrap_content" android:id="@+id/NumChildSpinner"
                  android:layout_width="wrap_content" android:layout_weight="1"&gt;&lt;/Spinner&gt;
          &lt;/TableRow&gt;
      &lt;/TableLayout&gt;
  
      &lt;Button android:layout_width="match_parent" android:id="@+id/CheckAvailabilityBtn"
          android:layout_height="wrap_content" android:text="@string/CheckAvailableBtn"
          android:layout_weight="1" /&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p><em>Basically what I need to know is how do I get the <code>Availability.class</code> file to use the second xml file?</em> All that I can see is the tabs which looks great! <em>I don't want to have to create the buttons etc. in the main code as I'm trying to be as OO as possible.</em> All of the examples I have seen either use the tabs.xml to layout the activity which is great if you want every tab to have the same information, or the layout stuff is written straight into the java class.</p>
  
  <p>Is it possible to do what I want? If so can someone advise me in how to do this or link me to somewhere? </p>