I'm trying to add a Button
in the onCreate
method for an activity and am getting a Null Pointer exception; below is my code:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// dynamic content
Button b = new Button(this);
b.setText("test");
LinearLayout ll = (LinearLayout) findViewById(R.id.linlayout_main);
ll.addView(b);
}
Logcat:
05-19 18:42:54.658: D/AndroidRuntime(2338): Shutting down VM
05-19 18:42:54.658: W/dalvikvm(2338): threadid=1: thread exiting with uncaught exception (group=0xb4a67ba8)
05-19 18:42:54.668: E/AndroidRuntime(2338): FATAL EXCEPTION: main
05-19 18:42:54.668: E/AndroidRuntime(2338): Process: net.test.Rem, PID: 2338
05-19 18:42:54.668: E/AndroidRuntime(2338): java.lang.RuntimeException: Unable to start activity ComponentInfo{net.test.Rem/net.test.Rem.MainActivity}: java.lang.NullPointerException
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.access$800(ActivityThread.java:135)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.os.Handler.dispatchMessage(Handler.java:102)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.os.Looper.loop(Looper.java:136)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.main(ActivityThread.java:5017)
05-19 18:42:54.668: E/AndroidRuntime(2338): at java.lang.reflect.Method.invokeNative(Native Method)
05-19 18:42:54.668: E/AndroidRuntime(2338): at java.lang.reflect.Method.invoke(Method.java:515)
05-19 18:42:54.668: E/AndroidRuntime(2338): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-19 18:42:54.668: E/AndroidRuntime(2338): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-19 18:42:54.668: E/AndroidRuntime(2338): at dalvik.system.NativeStart.main(Native Method)
05-19 18:42:54.668: E/AndroidRuntime(2338): Caused by: java.lang.NullPointerException
05-19 18:42:54.668: E/AndroidRuntime(2338): at net.test.Rem.MainActivity.onCreate(MainActivity.java:36)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.Activity.performCreate(Activity.java:5231)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
05-19 18:42:54.668: E/AndroidRuntime(2338): ... 11 more
Line 36 is ll.addView(b);
I read elsewhere on SO that this is because the setContentView
is not being called before LinearLayout
; but it seems to be, or am I missing something?