Ошибка получения массива из Intent в Android

1

Я посылаю Array в one activity и получаю этот массив в other activity.

Вот мой код (Принимающая сторона)

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

но я получаю следующую ошибку

  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)

Может кто-нибудь мне помочь.

  • 1
    Вставьте код отправляющей стороны.
  • 0
    Какая линия является линией 41?
Показать ещё 2 комментария
Теги:
android-intent

3 ответа

0
Лучший ответ
Bundle Extras = getIntent().getExtras();
if(Extras != null)
{
    reports = Extras.getStringArrayExtra("reports");
    System.out.println("Size() "+reports.length);
}
  • 0
    Почему бы вам не добавить комментарии к своему ответу?
  • 0
    Как вы получаете getIntent (). GetExtras (); в Extras вы можете получить только Extras вместо getIntent ()
Показать ещё 2 комментария
0

Возможно, вы не получаете никакого массива (с ключевыми отчетами) из дополнительных. Вам нужно проверить, не является ли объект отчетов также null.

Bundle Extras = getIntent().getExtras();
if(Extras != null)
{
    reports = getIntent().getStringArrayExtra("reports");

    if(reports != null)
        System.out.println("Size() "+reports.length);
}
0
  1. Не используйте магические литералы - используйте константы. Meybe, у вас есть ошибочные "отчеты" на стороне ivoker или забыли добавить туда.
  2. Вы уверены, что getStringArrayExtra что-то возвращает? Нет!
  3. отлаживать/добавлять журналы и проверять, что содержит дополнительные функции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню