私はこのような2d文字列配列を持っています
String[][] ContactList = new String[][]
{
{ "a", 123 },
{ "b", 123 },
{ "c", 123 },
{ "d", 123 } };
この配列を別のアクティビティに渡す方法???
そして、そのアクティビティで、この配列を取得するにはどうすればよいですか?
私はこのような2d文字列配列を持っています
String[][] ContactList = new String[][]
{
{ "a", 123 },
{ "b", 123 },
{ "c", 123 },
{ "d", 123 } };
この配列を別のアクティビティに渡す方法???
そして、そのアクティビティで、この配列を取得するにはどうすればよいですか?
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);
あなたは使用することができますBundle
:
bundleInstance.putSerializable("ContactList ", ContactList);
それを取得するには:
String[][] ContactList = (String[][]) bundleInstance.getSerializable("ContactList ");
私は通常、「a:123; b:123; c:123; d:123」などの単純な文字列オブジェクトとしてシリアル化し、他のアクティビティでシリアル化を解除します。あなたが持っている行の数に依存しますが、それはそれを渡すための迅速かつ簡単な方法です。
この場合、HashmapとArrayListを使用しないのはなぜですか?
ArrayList<HashMap<String,String>>
次に、データを追加するためにputを使用し、データを取得するためにgetを使用します
Intent intent = new Intent(/* ... */);
int i = 0;
for (String[] arr : contactList) {
intent.putExtra("StringArray#" + i, arr);
++i;
}
intent.putExtra("StringArrayCount", i);
他のアクティビティでは、カウントを読み取り、次にを使用して各「StringArray#」プロパティを読み取ることから始めますgetStringArrayExtra
。