Отправьте в Intent ArrayList <ArrayList <String>> - PullRequest
0 голосов
/ 05 мая 2018

У меня в активности ArrayList<ArrayList<String>>, поэтому в основном список списков.

То, что я хотел бы выполнить, - это отправить из Упражнения 1 в Упражнение 2 этот Список списков, так что я подумал о намерениях, но, похоже, не могу найти необходимый getExtra ().

Чтобы быть более точным, questions содержит Strings, связанный с вопросом, а соответствующая позиция в answers содержит все выбранные ответы на этот вопрос.

public class ReviewActivity extends AppCompatActivity {

ArrayList<String> questions = new ArrayList<>();
ArrayList<ArrayList<String>> answers = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_review);

    Intent intent = getIntent();
    questions = intent.getStringArrayListExtra("questions");
    answers = intent.getStringArrayListExtra("answers");

}

Вот как я поместил оригинал ArrayList<ArrayList<String>> в намерение:

 Intent mIntent = new Intent(this, ReviewActivity.class);
                            mIntent.putExtra("questions", questions);
                            mIntent.putExtra("answers", answers);
                            startActivity(mIntent);

Код выдает ошибку в строке answers = intent.getStringArrayListExtra("answers");, и я понимаю, почему, но как я могу обойти это?

Спасибо.

1 Ответ

0 голосов
/ 05 мая 2018

ArrayList равно Serializable, поэтому вы можете отправить его в пакет как Serializable.

 mIntent.putExtra("answers", answers);

Чтобы получить список:

ArrayList<ArrayList<String>> list= (ArrayList<ArrayList<String>>) getIntent().getExtras().getSerializable("answers");
...