問題タブ [parcel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
274 参照

android - プレーンなタイプのバンドルをパーセルすると、RuntimeException が発生します不明なタイプのコードのアンマーシャリング

一時的に保存するために onSaveInstanceState メソッドから Bundle を分割したいと考えています。

putBoolean と putInt のみを使用します。このデータを別の場所に保存します。

後で再利用します。

この例外 @p11.readValue が発生します

わかりません、何が問題なのですか。

0 投票する
2 に答える
21285 参照

android - Parcelable を Parcel の助けを借りてバイト配列にマーシャリングおよびアンマーシャリングする方法は?

Parcelableバイト配列との間で実装するクラスをマーシャリングおよびアンマーシャリングしたいと考えています。私は、Parcelable 表現が安定していないため、インスタンスの長期保存を意図していないという事実を十分に認識しています。しかし、オブジェクトをシリアル化する必要があるユースケースがあり、内部の Android の変更が原因でアンマーシャリングが失敗した場合、それはショーストッパーではありません。また、クラスはすでにParcelableインターフェースを実装しています。

class が与えられた場合、マーシャリング/アンマーシャリングのためにインターフェイスMyClass implements Parcelableを (ab) 使用するにはどうすればよいですか?Parcelable

0 投票する
4 に答える
39053 参照

android - "BadParcelableException: アンマーシャリング時の ClassNotFoundException" ClassLoader を引数とする Parcel.read メソッドの使用中

カスタム クラスを指定して、パーセルに aorg.example.app.MyClass implements Parcelableを書き込みたいと思います。List<MyClass>私はマーシャリングを行いました

クラスを非整列化しようとするたびに

例外があり"BadParcelableException: ClassNotFoundException when unmarshalling org.example.app.MyClass"ます。

ここで何が問題なのですか?クラスが見つからないのはなぜですか?

0 投票する
1 に答える
636 参照

java - Android でパーセルからオブジェクトを読み取るとき、デフォルトの ClassLoader を使用したくない場合は?

Parcelable インターフェースを実装する場合、CREATOR 実装は通常、Parcel を受け取るコンストラクターを使用します。

この区画には、次のようなコードがあるかもしれません

mMyField = parcel.readParcelable(MyFoo.class.getClassLoader())

私の知る限り、 parcel.writeParcelable(mMyField) は既にパーセルにクラス名を格納しているため、通常はデフォルトのクラス ローダーを使用して代わりに null を渡すだけで問題ありません。

私の質問は、null を渡す代わりに MyFoo.class.getClassLoader() を使用する必要があるのはいつですか?

0 投票する
4 に答える
8303 参照

java - ジェネリック クラスを分割することは可能ですか?

を作成しようとしていますpublic class MyClass<T extends Parcelable> implements Parcelable。の実装に困っていますParcelable。を実装するジェネリック クラスを作成することは可能Parcelableですか? (Tも実装する必要があるように、 は制限されていることに注意してくださいParcelable)。

Parcelable インターフェースには静的変数が必要であるという事実で問題が発生しています: public static final Parcelable.Creator<MyParcelable> CREATORpublic static final Parcelable.Creator<MyClass<T>> CREATORしたがって、非静的であるため、私はできませんMyParcelable<T>

アンドレ

0 投票する
2 に答える
2802 参照

android - カスタム オブジェクトを含むコレクションを含むモデルをパーセルする

私はこのクラスを持っています:

MyFoo および MyFoo2 クラスも Parcelable を実装していますが、ForeignCollection は実装していません。ForeignCollectionは、次のインターフェイスを実装するクラスです: Collection、CloseableIterable、および Iterable。

out.writeListForeignCollection は List インターフェースを実装していないので使えません。

0 投票する
1 に答える
686 参照

android - クラスを直列化可能かつパーセル化可能にする必要がありますか?

現在作成中のAndroidアプリケーションのクラスを作成しました。アクティビティ間でこのクラスのオブジェクトを効率的に送信できるように、パーセル可能にしました。ただし、これらのオブジェクトも内部ストレージに保存したいと考えています。私が読んだことから、そのためにはクラスをシリアライズ可能にする必要があります。これらのオブジェクトを保存できる他の効率的な方法はありますか、それともクラスをシリアライズ可能にしても問題ありませんか?