2013-03-26 128 views
2

我目前正在发送一个变量,一旦用户通过意图登录并通过Bundle接收它。意图崩溃我的应用程序

我检查了LogCat并收到变量,但是一旦我收到它,应用程序崩溃....下面是我的代码。

Bundle bundle = getIntent().getExtras(); 
    final int cameraId = 0; 
    final TextView welcomeText = (TextView) findViewById(R.id.WelcomeText); 
    final TextView relocationId = (TextView) findViewById(R.id.RelocationID); 
    final TextView addressOne = (TextView) findViewById(R.id.addressOne); 
    final TextView addressTwo = (TextView) findViewById(R.id.addressTwo); 
    final String RelocationId = bundle.getString("UID"); 
    relocationId.setText("Your Relocation: #" + RelocationId); 

这就是我的包在接收端看起来像(但崩溃后)。如果我注释掉最后两行,它会像平常一样继续。

的logcat:

03-25 18:35:50.749: E/AndroidRuntime(19145): FATAL EXCEPTION: main 
03-25 18:35:50.749: E/AndroidRuntime(19145): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testingapp/com.testingapp.MoveContactsActivity}: java.lang.NullPointerException 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.ActivityThread.access$600(ActivityThread.java:140) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.os.Looper.loop(Looper.java:137) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.ActivityThread.main(ActivityThread.java:4898) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at java.lang.reflect.Method.invokeNative(Native Method) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at java.lang.reflect.Method.invoke(Method.java:511) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at dalvik.system.NativeStart.main(Native Method) 
03-25 18:35:50.749: E/AndroidRuntime(19145): Caused by: java.lang.NullPointerException 
03-25 18:35:50.749: E/AndroidRuntime(19145): at com.testingapp.MoveContactsActivity.onCreate(MoveContactsActivity.java:69) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.Activity.performCreate(Activity.java:5206) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
03-25 18:35:50.749: E/AndroidRuntime(19145): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) 
03-25 18:35:50.749: E/AndroidRuntime(19145): ... 11 more 

有什么不对?

+0

请发布logcat。 – 2013-03-26 00:31:52

+1

当您检索logcat时,请确保'TextView''relocationId'不是'null' – codeMagic 2013-03-26 00:33:07

+0

@codeMagic LogCat在该值上显示Null ...它是如何显示的...此外还更新了logCat – Keeano 2013-03-26 00:36:52

回答

1

这意味着TextView不存在于您已膨胀的Layout中。检查你的xml是否拼写正确。如果你仍然无法修复错误,那么可以在onCreate()和xml中发布Layout。由于您的TextViewnull你得到一个NPE当您尝试调用setText()

+0

LowerCase r在ID调用RelocationId – Keeano 2013-03-26 00:48:44

+1

它总是让你的小事情:)很高兴我能够帮助! – codeMagic 2013-03-26 00:49:51

1

你确定你实际上可以额外以前?从文档

Returns the map of all extras previously added with putExtra(), 
or null if none have been added. 

我怀疑getExtras()方法返回null,因为你是在调用它之前没有额外已经被添加到意图。

您是直接运行新活动还是使用意向启动此活动(设置了额外功能)。

或者像其他人提到的那样,这可能是您的textview是问题。测试这个简单的方法只是评论最后一个。如果这能解决问题,那么你的textview就是这个问题。

+0

String UserId = RelocationId; \t \t \t \t \t \t意图意图=新意图(HomeActivity.this, \t \t \t \t \t \t \t \t MoveContactsActivity.class); \t \t \t \t \t \t intent.putExtra(“UID1”,UserId); \t \t \t \t \t \t startActivity(intent); – Keeano 2013-03-26 00:41:44

+0

这是我的额外调用和通过意图转移变量。 – Keeano 2013-03-26 00:42:12

+0

UID1?是一种类型?否则,这就是你的问题 – JustDanyul 2013-03-26 00:43:32