title: Android programmatically adding RelativeLayout to to TableLayout
body: <p>So, I decided to learn to write Android apps. I prefer learning by writing code so I setup my environment and dived in to Android! </p>
  
  <p>And hit my head :)</p>
  
  <p>I am trying to add import RelativeLayout as TableRows to a Table view.</p>
  
  <p>This is my table layout which I want to re-use,</p>
  
  <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt;   
  &lt;TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/upload_list_table"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:stretchColumns="*" &gt;
  
  &lt;/TableLayout&gt;
  </code></pre>
  
  <p>I included it i my my main activity with </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/home_activity"
    android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical" &gt;
  
  &lt;include android:id="@+id/homeActivityUploadList" layout="@layout/upload_list_table" /&gt;
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>Then, I created my Row with RelativeLayout</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
   &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/upload_list_table_row_relative"
  android:layout_width="fill_parent"
  android:layout_height="?android:attr/listPreferredItemHeight"
  android:padding="6dip" &gt;
  
  
  
  &lt;ImageView
      android:id="@+id/fileThumb"
      android:layout_width="90px"
      android:layout_height="fill_parent"
      android:layout_alignParentTop="true"
      android:layout_gravity="left"
      android:padding="2px"
  
      android:src="@drawable/nothumb" /&gt;
  
  &lt;TextView
      android:id="@+id/fileDescription"
      android:layout_width="fill_parent"
      android:layout_height="26dip"
      android:layout_alignParentBottom="true"
      android:layout_alignParentRight="true"
      android:layout_toRightOf="@id/fileThumb"
      android:ellipsize="marquee"
      android:singleLine="true"
      android:text="Desc" /&gt;
  
  
  &lt;TextView
      android:id="@+id/fileTitle"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_above="@id/fileDescription"
      android:layout_alignParentRight="true"
      android:layout_alignParentTop="true"
      android:layout_alignWithParentIfMissing="true"
      android:layout_toRightOf="@id/fileThumb"
      android:gravity="center_vertical"
      android:text="Title" /&gt;
  
   &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>Now, I am trying this</p>
  
  <pre><code> public class HomeActivity extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.home_activity);
  
  
      TableLayout tbl = (TableLayout)findViewById(R.id.homeActivityUploadList);
      RelativeLayout row = (RelativeLayout)findViewById(R.layout.upload_list_table_row_relative);
  
      tbl.addView(row);
  
  
  }
  </code></pre>
  
  <p>But, i get NullPointerException. It can't find </p>
  
  <pre><code>RelativeLayout row = (RelativeLayout)findViewById(R.layout.upload_list_table_row_relative);
  </code></pre>
  
  <p>I've also tried </p>
  
  <pre><code>RelativeLayout row = (RelativeLayout)findViewById(R.id.upload_list_table_row_relative);
  </code></pre>
  
  <p>What am I doing wrong?</p>
  
  <p>Thanks</p>
  
  <h2>Log output</h2>
  
  <pre><code>    01-24 11:30:15.757: D/dalvikvm(1625): GC_EXTERNAL_ALLOC freed 46K, 53% free    2539K/5379K, external 1625K/2137K, paused 68ms
  </code></pre>
  
  <p>01-24 11:30:15.877: D/dalvikvm(1625): GC_EXTERNAL_ALLOC freed 1K, 53% free 2538K/5379K, external 2250K/2810K, paused 58ms
  01-24 11:30:15.967: D/AndroidRuntime(1625): Shutting down VM
  01-24 11:30:15.967: W/dalvikvm(1625): threadid=1: thread exiting with uncaught exception (group=0x40015560)
  01-24 11:30:15.977: E/AndroidRuntime(1625): FATAL EXCEPTION: main
  01-24 11:30:15.977: E/AndroidRuntime(1625): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.<strong><em>*</em></strong>.HomeActivity}: java.lang.NullPointerException
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.os.Handler.dispatchMessage(Handler.java:99)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.os.Looper.loop(Looper.java:123)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.app.ActivityThread.main(ActivityThread.java:3683)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at java.lang.reflect.Method.invokeNative(Native Method)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at java.lang.reflect.Method.invoke(Method.java:507)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at dalvik.system.NativeStart.main(Native Method)
  01-24 11:30:15.977: E/AndroidRuntime(1625): Caused by: java.lang.NullPointerException
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.view.ViewGroup.addView(ViewGroup.java:1821)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.widget.TableLayout.addView(TableLayout.java:403)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.view.ViewGroup.addView(ViewGroup.java:1808)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.widget.TableLayout.addView(TableLayout.java:394)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at com.<strong>*</strong>.onCreate(HomeActivity.java:23)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
  01-24 11:30:15.977: E/AndroidRuntime(1625):     ... 11 more</p>
  
  <pre><code>    android:ellipsize=
  </code></pre>