如何将数组传递给另一个活动?

时间:2011-08-31 13:31:05

标签: android android-layout android-emulator android-widget

我知道我们可以使用方法putExtra()getExtra方法将任何具有其值的对象传递给另一个活动。 但现在我想知道是否可以将数组传递给另一个Activity? 或者,如果是,那么让我知道如何将数组传递给另一个Activity? 感谢。

5 个答案:

答案 0 :(得分:31)

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);

答案 1 :(得分:3)

Bundle类有许多putXxxxArray()方法。

  1. putBooleanArray
  2. putByteArray
  3. putCharArray
  4. putCharSequenceArray
  5. putDoubleArray
  6. putFloatArray
  7. putIntArray
  8. putLongArray
  9. putParcelableArray
  10. putShortArray
  11. putStringArray
  12. 如果您希望传递某种Object,则应该查看Parcelable界面,因为您的对象需要实现它。

答案 2 :(得分:2)

首先,您应该知道两个问题:

  • 为了通过意图发送它必须是可以分发的
  • 即使某个对象具有节奏性,您可以通过意图发送的数据量也有限制。

一种可能的方法可能是建立一个静态结构,您可以在其中存储数据并仅传递该数据的索引。使用此索引,新活动可以访问这些数据。希望这会有所帮助。

答案 3 :(得分:2)

请参阅this问题。基本上是:

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 :(得分:2)

 Intent intent = new Intent();
 Bundle bundle = new Bundle();
 bundle.putSerializable("bundle",Parceble Object);
 intent.putExtra(String key, String[] values);
 intent.putExtras(bundle);

对于不同类型的数组,请查看here

日Thnx