Я знаю, что мы можем передать любой объект с его значением в другое действие с помощью методов putExtra()
и getExtra
.
но теперь я хочу знать, можно ли передать массив другому Activity
или нет?
Или, если это тогда, дайте мне знать, как я могу передать массив другому Activity
?
Спасибо.
Как передать массив в другое действие?
Ответ 1
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);
Ответ 2
В классе Bundle
есть много методов putXxxxArray().
- putBooleanArray
- putByteArray
- putCharArray
- putCharSequenceArray
- putDoubleArray
- putFloatArray
- putIntArray
- putLongArray
- putParcelableArray
- putShortArray
- putStringArray
Если вы хотите передать какой-то Object
, вы должны посмотреть на интерфейс Parcelable
, так как ваши объекты должны будут его реализовать.
Ответ 3
См. этот вопрос. В основном:
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);
Ответ 4
Во-первых, вы должны знать два вопроса:
- чтобы отправить sth с намерением, он должен быть сущностным
- даже если объект является правдоподобным, существует ограничение на количество данных, которое вы можете отправить посредством намерения.
Возможным подходом может быть статическая структура, в которой вы могли бы хранить свои данные и передавать с намерением только индекс для этих данных. Используя этот индекс, новая активность может получить доступ к этим данным. Надеюсь, это поможет.
Ответ 5
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putSerializable("bundle",Parceble Object);
intent.putExtra(String key, String[] values);
intent.putExtras(bundle);
И для разных типов массивов посмотрите здесь.
Thnx