Как передать массив в другой вид деятельности? - PullRequest
11 голосов
/ 31 августа 2011

Я знаю, что мы можем передать любой объект со значением в другое действие с помощью методов putExtra() и getExtra.но теперь я хочу знать, возможно ли передать массив другому Activity или нет?Или, если это так, дайте мне знать, как я могу передать массив другому Activity?Спасибо.

Ответы [ 5 ]

31 голосов
/ 31 августа 2011
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);
3 голосов
/ 31 августа 2011

Класс Bundle имеет много методов putXxxxArray ().

  1. putBooleanArray
  2. putByteArray
  3. putCharArray
  4. putCharSequenceArray
  5. putDoubleArray
  6. putFloatArray
  7. putIntArray
  8. putLongArray
  9. putParcelableArray
  10. putShortArray
  11. putStringArray

Если вы хотите передать какой-то Object, вам следует взглянуть на интерфейс Parcelable, поскольку ваши Объекты должны будут его реализовать.

2 голосов
/ 31 августа 2011
 Intent intent = new Intent();
 Bundle bundle = new Bundle();
 bundle.putSerializable("bundle",Parceble Object);
 intent.putExtra(String key, String[] values);
 intent.putExtras(bundle);

А для различных типов массивов посмотрите здесь .

Thnx

2 голосов
/ 31 августа 2011

Пожалуйста, посмотрите этот вопрос.В основном:

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 голосов
/ 31 августа 2011

Во-первых, вы должны знать две проблемы:

  • , чтобы отправлять sth через намерение, оно должно быть пригодно для отправки
  • , даже если объект перемещается, есть ограничение дляобъем данных, которые вы можете отправить через намерение.

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

...