Передача массива строк между действиями 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");