将2d String数组传递给新Activity

时间:2012-10-23 14:48:33

标签: android android-intent multidimensional-array android-activity

  

可能重复:
  how to get two dimensional string Array from one Activity to other

我有一个像这样的二维字符串数组

String[][] ContactList = new String[][]
        {
        { "a", 123 },
        { "b", 123 },
        { "c", 123 },
        { "d", 123 } };

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

然后在那个活动中,我该如何检索这个数组?

5 个答案:

答案 0 :(得分:1)

您可以使用Bundle

bundleInstance.putSerializable("ContactList ", ContactList);

要检索它:

String[][] ContactList = (String[][]) bundleInstance.getSerializable("ContactList ");

答案 1 :(得分:1)

你可以在labeeb提供的bundle put parcelable array list中创建一个bundle,并设置为intent这里的代码是

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

答案 2 :(得分:1)

我通常将其序列化为一个简单的字符串对象,例如“a:123; b:123; c:123; d:123”,并在另一个活动中反序列化它。取决于您拥有的行数,但这是一种快速简便的传递方式。

答案 3 :(得分:0)

Intent intent = new Intent(/* ... */);

int i = 0;
for (String[] arr : contactList) {
  intent.putExtra("StringArray#" + i, arr);
  ++i;
}
intent.putExtra("StringArrayCount", i);

在另一项活动中,您将首先阅读计数,然后是每个&#34; StringArray#&#34;使用getStringArrayExtra的财产。

答案 4 :(得分:0)

在这种情况下为什么不使用Hashmap和ArrayList ??

ArrayList<HashMap<String,String>> 

然后使用put添加数据并使用get获取它