2015-11-04 177 views
7

我試圖使用一個Intent來啓動一個Activity,但提到的錯誤發生在第二個活動的setContentView();java.lang.NullPointerException:嘗試調用虛擬方法'int android.view.ViewGroup.getPaddingLeft()'null對象引用

這是我的代碼和佈局文件。

itemactivity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical"> 

</LinearLayout> 

MainActivity:

Intent i=new Intent(MainActivity.this,ItemActivity.class); 
startActivity(i); 

ItemActivity:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.itemactivity); // this is where error occurs 
    super.onCreate(savedInstanceState); 
} 

下面是完整的錯誤日誌:

java.lang.RuntimeException: Unable to start activity   ComponentInfo{bertaberim.team.beertaberim/bertaberim.team.beertaberim.ItemActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.ViewGroup.getPaddingLeft()' on a null object reference 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3119) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at android.app.ActivityThread.access$1000(ActivityThread.java:198) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:102) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:145) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:6837) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:372) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 

回答

13

您需要先調用super.onCreate()先對Activity進行必要的初始化,然後再設置它的視圖。只需翻轉這兩行:

super.onCreate(savedInstanceState); 
setContentView(R.layout.itemactivity); // this is where error occurs 

更多關於此方法在做,看看this answer更多的信息。

0

你應該在所有視圖準備好之後使用它,你可以在super.onResume()後調用它()

相關問題