Страницы

Поиск по вопросам

суббота, 4 апреля 2020 г.

Ошибка при передаче массива в другое активити

#java #android #массивы #android_intent

                    
Есть одномерный массив

String [] mas=getResources().getStringArray(R.array.mas);


Его нужно  при клике по  button_3 передать в другое активити:

public void onClick(View v) {
       Intent intent3 = new Intent(this,Test_3.class);
        switch (v.getId()){
            case R.id.button_3:

                 intent3.putExtra("mas",mas);
                 startActivity(intent3);
                break;


В другом активити переданный массив получается так:

Bundle extras = getIntent().getExtras();
String[] mas3 = extras.getStringArray("mas");


Затем первый элемент массива отображается в текстовом поле:

int counter = 0;
  textView.setText(mas3[counter]);


В итоге после клика по кнопке переход на другое активити не осуществляется, выдает
ошибку, ссылаясь на последнюю строку

 textView.setText(mas3[counter]);


Подскажите, в чем ошибка?
    


Ответы

Ответ 1



Скорее всего вы ищите свой массив не там. Попробуйте его искать прямо в интенте, а не в его Bundle String[] mas3 = getIntent().getStringArray("mas"); Либо тогда уж помещать сначала массив в Bundle, Bundle в Intent и вытаскивать так, как вы сейчас вытаскиваете: Bundle bundle = new Bundle(); bundle.putStringArray("mas",mas); intent3.putExtras(bundle); startActivity(intent3); А ошибка возникает, видимо, из-за того, что при ненахождении значения в Bundle по умолчанию подставляется null

Комментариев нет:

Отправить комментарий