0

重複の可能性:
あるアクティビティから別のアクティビティに2次元の文字列配列を取得する方法

私はこのような2d文字列配列を持っています

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

この配列を別のアクティビティに渡す方法???

そして、そのアクティビティで、この配列を取得するにはどうすればよいですか?

4

5 に答える 5

1

labeebが提供するバンドルプットパーセブル配列リストに1つのバンドルを作成し、ここでインテントに設定することができます。

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

あなたは使用することができますBundle

bundleInstance.putSerializable("ContactList ", ContactList);

それを取得するには:

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

私は通常、「a:123; b:123; c:123; d:123」などの単純な文字列オブジェクトとしてシリアル化し、他のアクティビティでシリアル化を解除します。あなたが持っている行の数に依存しますが、それはそれを渡すための迅速かつ簡単な方法です。

于 2012-10-23T14:59:11.107 に答える
0

この場合、HashmapとArrayListを使用しないのはなぜですか?

ArrayList<HashMap<String,String>> 

次に、データを追加するためにputを使用し、データを取得するためにgetを使用します

于 2012-10-23T15:02:57.720 に答える
0
Intent intent = new Intent(/* ... */);

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

他のアクティビティでは、カウントを読み取り、次にを使用して各「StringArray#」プロパティを読み取ることから始めますgetStringArrayExtra

于 2012-10-23T14:52:41.977 に答える