2013-10-13 2 views
0

Я пытаюсь передать строковый массив _imagesPaths из одного пакета в другой.NullPointer при отправке строк между различными пакетами

Я попытался следующие:

//sending the paths of images from `MainActivity` which is in `main.packages` 
//assume the array is not null 

Intent b = new Intent(MainActivity.this, EditPicturesActivity.class); 
b.putExtra("left",LeftImageString); 
b.putExtra("right",RightImageString); 

Пути принимаются в другом пакете, выполнив следующие действия:. private String[] _imagesPath; Bundle статистов = getIntent() getExtras();
_imagesPath [0] = extras.getString ("left"); _imagesPath [1] = extras.getString ("right");

Далее, я пытаюсь загрузить изображения, поставляемые по дорожкам, но я получаю NullPointer, который сообщает _imagesPath is null.

EDIT

Значение _imagesPath назначается, делая выбор изображения из галереи: В этой деятельности

private String[] _imagesPath = null;

case SELECT_PICTURE1: 
     if (resultCode == RESULT_OK) { 

      Uri selectedImage = data.getData(); 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

      Cursor cursor = getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
      LeftImageString = cursor.getString(columnIndex); 

      cursor.close(); 

      //the toast displays the path and it is not null 
      Toast.makeText(
        getApplicationContext(), 
        "The path of the first image you have selected is: " 
          + LeftImageString, Toast.LENGTH_SHORT).show(); 
      // String leftImagePath contains the path of selected Image 


      //intent for "left" is placed here 

     }  
     break; 

//similary image is taken for Image 2. 
+0

Где вы устанавливаете значение '_imagesPath'? – BobTheBuilder

+0

Как вы инициализируете _imagesPath? – hasan83

+0

Вы устанавливаете для _imagespath значение null. Почему вы удивлены тем, что выбрано пустое исключение? – Kuffs

ответ

0

вы должны инициализировать _imagesPath перед установкой значения его:

String _imagesPath[] = new String[2]; 
Bundle extras = getIntent().getExtras();    
_imagesPath[0] = extras.getString("left"); 
_imagesPath[1] = extras.getString("right"); 
0

вы можете непосредственно передать _imagesPaths как,

Intent b = new Intent(MainActivity.this, EditPicturesActivity.class); 
b.putExtra("paths",_imagesPaths); 

И может получить его на другом конце, как,

String[] paths = getIntent().getStringArrayExtra("paths"); 
+0

Да, я тоже это попробовал, купите, чтобы он продолжал давать ту же ошибку – User1204501

0

Ваш код хорошо, но вам нужно инициализировать массив изображения.

спасибо.

+0

Я сделал то же, что и ответы Хасана – User1204501

+0

не работает – User1204501

+0

Да, потому что в вашем коде только эта ошибка. – Yogendra

Смежные вопросы