Передача массива строк между действиями Android

У меня есть 2 строковых массива внутри First Activity - A, теперь мне нужно передать оба массива в second_activity - B, как мне это сделать?

Я знаю о Intent Такая концепция в Android и уже передала только одно значение переменной в другое действие, но я не реализовал концепцию передачи строковых массивов между действиями, я уже просмотрел net для этого.

Пожалуйста, дайте мне знать о возможном решении.

4 ответа

Решение
Bundle b=new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i=new Intent(context, Class);
i.putExtras(b);


Надеюсь, что это поможет вам.

Для того, чтобы прочитать:

Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray(key);

Не является прямым ответом на вопрос, но вы также можете использовать.putStringArrayListExtra() в вашем комплекте. Это более гибко, чем отправка строкового массива.

Bundle b=new Bundle();
b.putStringArrayListExtra("URL_ARRAY_LIST",
                        myStringArrayList);
Intent i=new Intent(context, Class);
i.putExtras(b);

Затем вы можете получить этот arrayList следующим образом:

ArrayList<String> urls;
urls = getIntent().getStringArrayListExtra("URL_ARRAY_LIST");

Интенты переносят данные в карту ключ-значение, где "ключ" - это идентификатор имени строки, который вы выбираете при сохранении данных в намерении. При чтении этих данных вы запрашиваете тот же "ключ". Вы можете хранить различные типы данных в одном намерении.

Чтобы отправить данные arrayList в другое действие,

  • создать намерение в первом действии
  • получить данные, используя пакет во втором действии

(1) Код для создания намерения в первом действии:

      Intent intent = new Intent(firstActivityName.this, SecondActivityName.class);

intent.putExtra("Array", ArrayListName);

startActivity(intent);

(2) Код для получения данных с использованием пакета во втором действии:

      Bundle bundle = getIntent().getExtras();

ArrayList<String> arrayList = new ArrayList<>();

arrayList = (ArrayList <String>) bundle.getSerializable("Array");
Другие вопросы по тегам