2015-11-04 13 views
7

アクティビティを開始するためにインテントを使用しようとしていますが、 2番目のアクティビティのsetContentView();java.lang.NullPointerException:ヌルオブジェクト参照で仮想メソッド 'int android.view.ViewGroup.getPaddingLeft()'を呼び出そうとしました

ここに私のコードとレイアウトファイルがあります。

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()に電話する必要があります。これは、ビューを設定する前にアクティビティに必要な初期化を事前に行うためです。 、この方法のがやって何の詳細については

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

this answerをチェックアウト:単純にこれら2つの行を反転させます。

0

すべてのビューの準備ができたらそれを使用する必要があります。これはsuper.onResume()の後に呼び出すことができます

関連する問題

 関連する問題