3

私は2つのアプリケーション間でデータを共有しようとしています..最初にファイルをSDカードに保存してからそれを読むことを考えましArrayListた..しかし、この解決策はうまくいきません..Object実装Parcelable..

これを達成するために他にどのような方法に従うことができますか?

注:
アクティビティは同じアプリケーション内ではありません。

4

4 に答える 4

8

ArrayListはクラスであり、カスタム オブジェクトも である限り、Serializableに配置できます。次のようになります。IntentSerializable

Intent intent = new Intent(YourActivity.this, YourReceiverActivity.class);
intent.putExtra("YourArrayList", new ArrayList<YourSerializableObject>());
startActivity(intent);

次に、それを取得します。

Intent intent = getIntent();
ArrayList<YourSerializableObject> list = 
    (ArrayList<YourSerializableObject>)intent.getSerializableExtra("YourArrayList");

オブジェクトが であるためには、含まれているすべてのメンバーも同様Serializableである必要があります。Serializable

于 2012-09-19T13:05:50.367 に答える
1

誰もこれについて言及しなかった理由はわかりませんが、最善の策は BY FAR SQLite です。比較してメモリを占有しないため、渡すオブジェクトよりもはるかに効率的です。

于 2015-03-17T22:42:33.857 に答える
1

ArrayList< CustomObject> の静的メンバーの種類を持つ静的クラス (たとえば、DataChannel と呼ばれる) を使用してから、静的 get/set を使用してアクティビティ間でオブジェクトを渡すことができます。

于 2012-09-19T13:42:51.383 に答える
0

次を使用して、オブジェクトの配列をインテントにエクストラとして格納できます。

public Intent putExtra (String name, Parcelable[] value)

カスタム URI のインテントを受け取るように他のアプリを構成する必要があります。

于 2012-09-19T11:40:17.560 に答える