2

アクティビティ間でオブジェクトを送信したい。これを読んで、パフォーマンスへの影響が最小限であるため、Parcelable を使用するのが最善の方法であるという結論に達しました。これを行う理由は、オブジェクトを作成するためにネットワークからデータをダウンロードする必要があるためです。そのため、データをダウンロードし続けたくありません。

ただし、Parcel を使用するには、クラスで Parcelable を実装する必要があります。ライブラリで定義されたオブジェクトを送信しようとしているので、クラスを編集してこれを含めることはできません。

私の苦境を解決する最善の方法は何でしょうか?

ライブラリ クラスを拡張して Parcelable を実装しようとしましたが、ClassCastException で失敗しました。また、ライブラリ クラスをラップする Parcelable クラスを作成し、そのように送信する必要があるという言及も見ました。

ありがとう!

4

2 に答える 2

-1

Bundleを使用しようとしましたか?

たとえば、パーセル可能なクラス User がある場合

Bundle bundle = new Bundle();
List<User> users = new ArrayList<User>();
String userName = user.setUserName("some name");
boolean isOnline = user.setOnline(true);
users.add(user);
bundle.putParcelableArrayList("USER", users);

そして、これを次のように取得できます。

public ArrayList<User> getParcelableArrayList(Bundle bundle){
   List<User> userList = new ArrayList<User>();
   userList = bundle.getParcelableArrayList("USER");
}
于 2013-03-19T15:27:58.667 に答える