問題タブ [parcelable]
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.
android - 循環参照で Parcelable を使用する
Parcelable は、Serializable のように循環参照を適切に処理していないようです。次の例では、Bar のシリアル化は正常に機能しますが、Parcel に書き込むとスタック オーバーフローが発生します。
Serializable を使用するコードから、循環参照を使用する Parcelable にコードを移植しようとしています。これを Parcelable で処理するための適切な戦略はありますか?
java - Android で Parcelable の配列を Parcel に書き込む
writeParcelableArrayを使用 して、Parcelableを実装するオブジェクトの配列をParcelに書き込もうとしています。
私が書き込もうとしているオブジェクトは、(ご想像のとおり) 次のように定義されています。
そして、私はそれらを「パーセル」に書き込もうとしています:
Eclipse がこれをコンパイルしようとすると、エラーが発生します。
境界の不一致: タイプ Parcel のジェネリック メソッド writeParcelableArray(T[], int) は、引数 (Arrival[], int) には適用できません。推論されたタイプ Arrival は、境界付きパラメーターの有効な代替ではありません < T extends Parcelable >
このエラー メッセージがまったくわかりません。Parcelable
はインターフェイス (クラスではない) であるため、拡張できません。誰にもアイデアはありますか?
更新:ArrayList
ofParcelable
をIntent
:に入れるときに、基本的に同じ問題が発生しています。
収量:
Intent 型の putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) メソッドは、引数 (String, ArrayList< Location >) には適用されません。
これLocation
は、私が上で取り組んでいたクラス ( Arrival
s をラップする) が原因である可能性がありますが、そうではないと思います。
java - parcelable のアンマーシャリングに関する問題
Parcelableを実装するいくつかのクラスがあり、これらのクラスのいくつかは互いにプロパティとして含まれています。クラスをパーセルにマーシャリングして、アクティビティ間で受け渡します。それらをパーセルにマーシャリングするとうまくいきますが、それらをアンマーシャリングしようとすると、次のエラーが発生します。
LayoverType
クラス(失敗している場所):
LocationType
クラスは次のとおりです。
更新 2 : 私が知る限り、次のコードで失敗しています ( Parcel のソースから):
クラスが見つからないのはなぜですか?存在し、実装していParcelable
ます。
android - Android、クライアントサーバーアプリのシリアライズ可能/パーセル可能の問題
TCP ソケット経由で Android からリモート サーバーに複雑なデータを送信したいと考えています。オブジェクトをシリアル化する必要があることはわかっています。Android では、これは parcelable を介して行われます。ただし、これは Android 固有のインターフェイスであり、サーバーはシリアライズ可能なインターフェイスしか認識しません。また、その逆も同様です android は、シリアル化可能なインターフェイスを認識しません。
Android とサーバーの両方がオブジェクトを「認識」する必要がありますが、それらは 2 つの異なる方法で実装されます (サーバー --> シリアライズ可能、アンドロイド --> パーセル可能)。
オブジェクトを TCP 経由でサーバーに正常に送信できるように、これらのインターフェイスを適切に使用するにはどうすればよいですか?
java - あるアクティビティから別のアクティビティに Bitmap オブジェクトを渡す方法
私のアクティビティでは、Bitmap
オブジェクトを作成してから、別のオブジェクトを起動する必要があります。サブアクティビティ (起動されるアクティビティ) からActivity
このオブジェクトを渡すにはどうすればよいですか?Bitmap
android - Androidアプリは向きの変更時にリセットされます。これを処理する最善の方法はありますか?
そこで、Androidプログラミングのさまざまな要素を試すための基本的なチェスアプリを作成しており、これまで多くのことを学んでいますが、今回は迷子になっています。
エミュレータの向きが変わると、アクティビティがリセットされます。私の調査によると、アプリケーションが一時停止/中断されたときはいつでも同じことが起こります。キーボードの交換、電話、ホームキーの押下など。
明らかに、チェスゲームを絶えずリセットすることは実行可能ではないので、もう一度、この問題を修正する方法を学ぶ必要があることに気付きます。
私の調査では、アクティビティのonPausedメソッドのオーバーライド、オリエンテーションのリッスン、マニフェストのキーボード変更(android:configChanges経由)、Parcelablesの使用、またはシリアル化など、いくつかの主要なことが明らかになりました。
Pacelablesを使用して多くのサンプルコードを調べましたが、正直言って混乱しすぎています。明日、新鮮な目で戻ってくることは有益かもしれませんが、今のところ、Parcelablesを見れば見るほど意味がなくなります。
私のアプリケーションは、64個のセルオブジェクト(8x8 2D配列)を持つBoardオブジェクトを利用し、各セルには、実際のピースまたはスペースが空の場合はnullのピースオブジェクトがあります。パーセル可能またはシリアル化のいずれかを使用すると仮定すると、各クラス、ボード、セル、およびピースをパーセル化またはシリアル化する必要があると想定しています。
何よりもまず、ParcelableまたはSerializationは、この問題を検討するのに適切なものでさえありますか?もしそうなら、これにはParcelableまたはSerializableのどちらが好ましいですか?そして、3つのオブジェクトのそれぞれをパーセル化/シリアル化する必要があると仮定して正しいですか?最後に、Parcelableチュートリアルを理解するのが簡単なリンクはありますか?私が理解するのに役立つものは何でもあり、私のアプリケーションがさらに拡張されたときに、今後のさらなる頭痛の種を止めることができます。
どんな助けでもいただければ幸いです。
android - クラスが構造に追加のパラメータを必要とする場合にParcelableを使用する方法
Parcelableインターフェイスを使用して状態をシリアル化する機能を持つジェネリックスを使用してクラスを作成しようとしています。問題は、クラスに単一のパラメーター(Parcel)を持つコンストラクターが含まれている必要があることですが、私の場合は、追加のパラメーターを持つクラスを作成する必要があります。その上、Parcelable.Creatorはジェネリックを使用することを許可していません。
次に例を示します。
public class Sample<T> {
...
public Sample(Context ctx, SomeInterface iface, Parcel parcel) {...}
...
}
それを行うためのベストプラクティスは何ですか?
android - オブジェクトを Handler メッセージに入れる
別のスレッドでインターネットから画像をダウンロードし、
その画像オブジェクトをハンドラー メッセージで UI スレッドに送信する必要があります。
私はすでにこれを持っています:
そして、このメッセージを受け取ったら、オブジェクトを抽出したいと思います:
しかし、これは私に与えています:
誰でも助けることができますか?
ところで、これはオブジェクトを UI スレッドに渡す 最も効率的な方法ですか?
皆さん、ありがとうございました!
android - パーセルブルオブジェクトについての質問
onSaveInstanceState に Parcelable Restaurant オブジェクトのリストを保存したいと考えています。以下に示すように、Parcelable を拡張する Restaurant クラスと RestaurantList オブジェクトを作成しました。私の主な活動では、GSON を使用して JSON インターネット データから直接 RestauranList に入力します。
今、私が使用してレストランオブジェクトのリストを保存したいとき
Parcelable データが書き込まれていないために、エラーが発生します (以下を参照)。どうすればいいですか?メイン アクティビティで Parcel オブジェクトの配列を作成し、Restaurant オブジェクトごとに writeToParcel を呼び出してそれを埋める必要がありますか?
提案をありがとう
ジュリアン
++++++
LogCat (outState.putParcelableArrayList("restoList", (ArrayList)restaurantList.getRestaurants()); でクラッシュします)
RestaurantList クラス
レストランクラス
android - Android:ParcelableとSerializableの違いは?
Android がオブジェクトをシリアル化するための 2 つのインターフェイスを提供するのはなぜですか? Serializable オブジェクトは Android および AIDLBinder
ファイルと相互接続しますか?