0

可能重复:
如何从一个活动获取二维字符串数组到另一个活动

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

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

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

然后在那个活动中,我怎样才能检索这个数组???

4

5 回答 5

1

您可以使用Bundle

bundleInstance.putSerializable("ContactList ", ContactList);

要检索它:

String[][] ContactList = (String[][]) bundleInstance.getSerializable("ContactList ");
于 2012-10-23T14:52:31.807 回答
1

您可以在 labeeb 提供的 bundle put parceable 数组列表中创建一个 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);
于 2012-10-23T14:56:12.280 回答
1

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

于 2012-10-23T14:59:11.107 回答
0
Intent intent = new Intent(/* ... */);

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

在另一个活动中,您将从读取计数开始,然后使用getStringArrayExtra.

于 2012-10-23T14:52:41.977 回答
0

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

ArrayList<HashMap<String,String>> 

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

于 2012-10-23T15:02:57.720 回答