0

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!

And hit my head :)

I am trying to add import RelativeLayout as TableRows to a Table view.

This is my table layout which I want to re-use,

 <?xml version="1.0" encoding="utf-8"?>   
<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="*" >

</TableLayout>

I included it i my my main activity with

<?xml version="1.0" encoding="utf-8"?>
    <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" >

<include android:id="@+id/homeActivityUploadList" layout="@layout/upload_list_table" />
</LinearLayout>

Then, I created my Row with RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
 <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" >



<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" />

<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" />


<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" />

 </RelativeLayout>

Now, I am trying this

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


}

But, i get NullPointerException. It can't find

RelativeLayout row = (RelativeLayout)findViewById(R.layout.upload_list_table_row_relative);

I've also tried

RelativeLayout row = (RelativeLayout)findViewById(R.id.upload_list_table_row_relative);

What am I doing wrong?

Thanks

Log output

    01-24 11:30:15.757: D/dalvikvm(1625): GC_EXTERNAL_ALLOC freed 46K, 53% free    2539K/5379K, external 1625K/2137K, paused 68ms

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.*.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.*.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

    android:ellipsize=
2
  • is the id of your relative layout upload_list_table_row_relative? I think you forgot to post the beginning of your <RelativeLayout.... Commented Jan 24, 2012 at 17:10
  • it was there but somehow it was hidden. fixed it. Commented Jan 24, 2012 at 19:00

1 Answer 1

2

you must use LayoutInflater

LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout  row = (RelativeLayout ) layoutInflater.inflate(R.layout.upload_list_table_row_relative, null);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.