#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
Комментариев нет:
Отправить комментарий