在Android中从Intent获取数组时出错

在Android中从Intent获取数组时出错,android,android-intent,Android,Android Intent,我在一个活动中发送数组,并在其他活动中获取该数组 这是我的代码(接收方) 但我有以下错误 07-16 18:15:27.628: W/Bundle(718): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 07-16 18:15:27.628: W/Bundle(718): at android.os.Handler.dispatchMessage(Handler.java:99)

我在
一个活动中发送数组
,并在
其他活动中获取该数组

这是我的代码(接收方)

但我有以下错误

  07-16 18:15:27.628: W/Bundle(718):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
  07-16 18:15:27.628: W/Bundle(718):    at android.os.Handler.dispatchMessage(Handler.java:99)
 07-16 18:15:27.628: W/Bundle(718):     at android.os.Looper.loop(Looper.java:130)
 07-16 18:15:27.628: W/Bundle(718):     at android.app.ActivityThread.main(ActivityThread.java:3683)
 07-16 18:15:27.628: W/Bundle(718):     at java.lang.reflect.Method.invokeNative(Native Method)
 07-16 18:15:27.628: W/Bundle(718):     at java.lang.reflect.Method.invoke(Method.java:507)
 07-16 18:15:27.628: W/Bundle(718):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
 07-16 18:15:27.628: W/Bundle(718):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
 07-16 18:15:27.628: W/Bundle(718):     at dalvik.system.NativeStart.main(Native Method)
 07-16 18:15:27.658: W/System.err(718): java.lang.NullPointerException
 07-16 18:15:27.658: W/System.err(718):     at com.mythrii.timeapp.EditReports.onCreate(EditReports.java:41)
 07-16 18:15:27.698: W/System.err(718):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
 07-16 18:15:27.698: W/System.err(718):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
 07-16 18:15:27.698: W/System.err(718):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
 07-16 18:15:27.698: W/System.err(718):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
 07-16 18:15:27.698: W/System.err(718):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
 07-16 18:15:27.698: W/System.err(718):     at android.os.Handler.dispatchMessage(Handler.java:99)
 07-16 18:15:27.698: W/System.err(718):     at android.os.Looper.loop(Looper.java:130)
 07-16 18:15:27.698: W/System.err(718):     at android.app.ActivityThread.main(ActivityThread.java:3683)
 07-16 18:15:27.698: W/System.err(718):     at java.lang.reflect.Method.invokeNative(Native Method)
 07-16 18:15:27.698: W/System.err(718):     at java.lang.reflect.Method.invoke(Method.java:507)
 07-16 18:15:27.698: W/System.err(718):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
 07-16 18:15:27.698: W/System.err(718):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-16 18:15:27.729: W/System.err(718):  at dalvik.system.NativeStart.main(Native Method)

有人能帮我吗。

也许您没有从extra获得任何数组(包含关键报告)。您需要检查reports对象是否也不是
null

Bundle Extras = getIntent().getExtras();
if(Extras != null)
{
    reports = Extras.getStringArrayExtra("reports");
    System.out.println("Size() "+reports.length);
}
Bundle Extras = getIntent().getExtras();
if(Extras != null)
{
    reports = getIntent().getStringArrayExtra("reports");

    if(reports != null)
        System.out.println("Size() "+reports.length);
}
  • 不要使用魔法文字-使用常量。也许你们在ivoker端打错了“报告”,或者忘了在那个边加额外的
  • 你确定getStringArrayExtra会返回一些东西吗?不
  • 调试/添加日志并检查附加的内容

  • 为什么不在你的答案上添加一些注释呢?因为你得到了getIntent().getExtras();在Extras中,你只能通过Extras而不是getIntent()它仍然是一样的。。。没有区别。我的意思是,如果它以前崩溃了,那么它仍然会崩溃,你的答案是什么??与上一个活动中的设置相同,设置intentWhich line为EditReports.java:41?System.out.println(“Size()”+reports.length);
    Bundle Extras = getIntent().getExtras();
    if(Extras != null)
    {
        reports = getIntent().getStringArrayExtra("reports");
    
        if(reports != null)
            System.out.println("Size() "+reports.length);
    }