我正在尝试使用Intent来启动一个Activity,但是在第二个activity的setContentView()上发生了上述错误。
这是我的代码和布局文件。
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)
答案 0 :(得分:13)
在设置活动之前,您需要首先致电super.onCreate()
以对活动进行必要的初始化。只需翻转这两行:
super.onCreate(savedInstanceState);
setContentView(R.layout.itemactivity); // this is where error occurs
有关此方法的详细信息,请查看this answer。
答案 1 :(得分:0)
你应该在所有视图准备就绪后使用它,你可以在super.onResume()
之后调用它