2

AndroidでParcelableインターフェースを実装する正しい方法は何ですか? ドキュメントによると、writeToParcelメソッドを実装し、CREATOR.

public void writeToParcel(Parcel out, int flags) {
     out.writeInt(mData);
 }

しかし、追加せずCREATORに空のままにするとwriteToParcel()、アプリはまだ正しく動作しているようです。時々私は取得しBad Parcelable Exceptionますが、複製する手順を理解できません。

これは、オブジェクトをアクティビティからフラグメントに渡すために使用する方法です

 Bundle bundle = new Bundle();
 bundle.putParcelable(PageFragment.PAGE_FILTER_KEY, page);
 fragment.setArguments(bundle);

out.writeInt(mData);では、これを行わないとどのような問題が予想されるかなどを追加する目的は何ですか。

4

2 に答える 2

2

しかし、CREATOR を追加せずに writeToParcel() を空のままにすると、アプリは正しく動作するように見えます。

CREATORからデータを読み取り、Parcelそれをオブジェクトに変換するときに使用されます。

writeToParcel()にデータを入れますParcel

これらをオフのままにしておくことが正しく機能する唯一の方法は、Parcelable実際に が に入れられていないParcelか、 から再構成されていない場合Parcelです。例は次のとおりLocalBroadcastManagerです。

out.writeInt(mData); のようなものを追加する目的は何ですか?

のようなものを追加するのと同じ目的out.write()ですOutputStream:出力に書き込みます。あなたの質問は、「ファイルにデータを書き込まないと、どのような問題が発生しますか?」という質問に似ています。

于 2016-02-13T16:32:33.737 に答える