Как передать ArrayList
из одной активности в другую?
Передать arraylist от одного действия к другому
Ответ 1
Это зависит от типа arraylist
-
putIntegerArrayListExtra(String name, ArrayList<Integer> value)
-
putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)
-
putStringArrayListExtra(String name, ArrayList<String> value)
-
putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value)
Затем вы можете прочитать от вас следующее действие, заменив put
на get
ключевой строкой в качестве аргумента, например
myIntent.getStringArrayListExtra("arrayPeople");
Ответ 2
Вы можете создать один пакет в списке патчей, который будет представлен в списке пакетов, предоставленном labeeb, и установить намерение здесь, это код для
Intent i = new Intent(this,name.class);
Bundle b = new Bundle();
b.putIntegerArrayListExtra(String name, ArrayList<Integer> value);
//b.putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value);
//b.putStringArrayListExtra(String name, ArrayList<String> value);
i.putExtra(String name,b);
startActivity(i);
И получите данные в другое действие, например
//pseudo code
Bundle b = getIntent().getExtra().putParcelableArrayListExtra(String name);
Ответ 3
По мне, создайте статический класс и поместите в него свой массив, пока вы переходите от одного действия к другому.
Когда вы достигнете другого действия, получите доступ к значению, которое вы сохранили в статическом классе.
UPDATE
Я со временем узнал, что это ужасная практика. Когда объекты стираются/воссоздаются, значения Static могут быть потеряны. и затем мы помещаем много данных в память тоже. Использование чего-либо, подобного Parcelable, является хорошей практикой.
Ответ 4
В аннулированном действии вы должны использовать
Bundle bundle = getIntent().getExtras();
ArrayList<String> stringArray = bundle.getStringArrayList(ParentActivity.STRING_LIST);
где ParentActivity.STRING_LIST
- ваша ключевая константа для списка.
Ответ 5
Когда вы создаете намерение. вы можете установить данные
intent.putExtra("keyName", "somevalue");
когда цель B начинается, вы можете получить данные
Bundle extras = getIntent().getExtras();
if(extras !=null)
{
String value = extras.getString("keyName");
}