可能重复:
如何从一个活动获取二维字符串数组到另一个活动
我有一个像这样的二维字符串数组
String[][] ContactList = new String[][]
{
{ "a", 123 },
{ "b", 123 },
{ "c", 123 },
{ "d", 123 } };
如何将此数组传递给另一个活动???
然后在那个活动中,我怎样才能检索这个数组???
可能重复:
如何从一个活动获取二维字符串数组到另一个活动
我有一个像这样的二维字符串数组
String[][] ContactList = new String[][]
{
{ "a", 123 },
{ "b", 123 },
{ "c", 123 },
{ "d", 123 } };
如何将此数组传递给另一个活动???
然后在那个活动中,我怎样才能检索这个数组???
您可以使用Bundle
:
bundleInstance.putSerializable("ContactList ", ContactList);
要检索它:
String[][] ContactList = (String[][]) bundleInstance.getSerializable("ContactList ");
您可以在 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);
我通常将它序列化为一个简单的字符串对象,例如“a:123;b:123;c:123;d:123”,然后在其他活动中反序列化它。取决于您拥有的行数,但这是通过它的快速简便的方法。
Intent intent = new Intent(/* ... */);
int i = 0;
for (String[] arr : contactList) {
intent.putExtra("StringArray#" + i, arr);
++i;
}
intent.putExtra("StringArrayCount", i);
在另一个活动中,您将从读取计数开始,然后使用getStringArrayExtra
.
在这种情况下,为什么不使用 Hashmap 和 ArrayList?
ArrayList<HashMap<String,String>>
然后使用 put 添加数据并使用 get 获取数据