2012-12-01 62 views
0

我尝试按下按钮时使用不同参数打开与当前所在类相同的班级。我这样做:在同一活动中打开活动

Intent j = new Intent("com.test.com.ANSWER"); 
      id = calculateId(0); 
      j.putExtra("id", Long.toString(id)); 
      startActivityForResult(j, 0); 

但我得到一个空指针异常..是否有一些规则,你不能在自己内部打开相同的活动?

错误:

12-01 01:29:10.314: E/AndroidRuntime(2194): FATAL EXCEPTION: main 
12-01 01:29:10.314: E/AndroidRuntime(2194): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.Answer}: java.lang.NullPointerException 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.os.Looper.loop(Looper.java:130) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at java.lang.reflect.Method.invoke(Method.java:507) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:861) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:619) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at dalvik.system.NativeStart.main(Native Method) 
12-01 01:29:10.314: E/AndroidRuntime(2194): Caused by: java.lang.NullPointerException 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at com.test.Answer.onCreate(Answer.java:86) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-01 01:29:10.314: E/AndroidRuntime(2194):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
+1

我不确定有一个规则,但我也不确定这是个好主意。如果这就是你需要做的,那么也许应该有一个你继承的类。空指针异常在哪里?它可能需要处理像calculateId()或其他地方的其他内容。你可以发布logcat吗? – codeMagic

+0

我添加了错误信息! Ps,这不是主意,因为如果我将它改为1例如,我仍然会收到该消息。 –

+0

什么是86行? –

回答

1

我觉得你的ID是没有得到初始化。你正试图用一个使用这个ID的函数初始化它,所以它永远不会有值。如果不是这样,那么你在不同的地方使用相同的变量名称,这通常不是很好练习