intent経由で複数データのやりとりですが、私はContentValuesにデータを詰めてBundleに対して
Parcelableを経由して送信しています。
送信側でも受信側でも実装すればできます。
送り側
Intent intent = new Intent();
ContentValues cv = new ContentValues();
cv.put("Data1", "リスト1");
cv.put("Data2", "リスト2");
cv.put("Data3", "リスト3");
Bundle b = new Bundle();
b.putParcelable("List", cv);
intent.putExtras(b);
startActivity(intent);
受け側
Intent intent = getIntent();
Bundle b = intent.getExtras();
ContentValues cv = b.getParcelable("List");
Log.i("List", "Data1:" + cv.get("Data1"));
Log.i("List", "Data2:" + cv.get("Data2"));
Log.i("List", "Data3:" + cv.get("Data3"));
こんな感じですね。
2011年5月9日21:07 大垣憲俊 <noritos...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com
> にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> からこのグループにアクセスしてください。
>
私は同一アプリ間では無く、別アプリ間でのデータ受け渡しを考えていて辿りつきました。
データ量が多い場合には恐らくはファイル間連携の方が良いとは思うのですが、少量のデータ
の場合が基本的には多いだろうと思っています。
#個人的にはインテント間でのメモリ経由での受け渡しデータが大量である場合には設計が
#間違っていると思っています。
大量データの受け渡しの場合には、SQLite経由とかファイル経由が筋かと思いますが、その
キーの受け渡しは、ContentValuesで行うと分かりやすさも伴うので良いのかなと。
花田さんの趣旨に合っているのかは分かりませんが、簡単にアプリ間インタフェースを作る場合
のサンプルになれば幸いです。
2011年5月10日1:12 大垣憲俊 <noritos...@gmail.com>:
Activity間の値の受け渡し方法として、IntentにputExtra/getExtraを利用する方法はご存知でしょうか?
ArrayListがSerializableを実装しているため、putExtra(String name, Serializable
value)を利用すればいいかと思います。
この際ArrayListの内部データもSerializeableの必要があります。
また、Integer、String、ParcelableのArrayListの場合は、
putIntegerArrayListExtra(String name, ArrayList<Integer> value)
putStringArrayListExtra(String name, ArrayList<String> value)
putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)
がありますので検討してみてはいかがでしょうか。
以上です。