問題タブ [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 - Inproc通信のためのParcelableの効率
Bitmapあるプロセス内で、あるアクティビティから別のアクティビティに巨大なオブジェクト(たとえば)を渡したい。Bundleそれをasに入れるとParcelable、Androidは実際にオブジェクトをシリアル化するのでしょうか、それとも参照によって渡すのでしょうか?
parcelable - 同じクラスインスタンスをあるアクティビティから別のアクティビティに渡す際の問題
SampleParcelableクラスオブジェクトsaysampleObjをClassA(現在の)アクティビティからClassB(新しいもの)に渡そうとしていますが、オブジェクトの値をログに記録すると、ClassAで作成しているオブジェクトの値が取得したものとはまったく異なります。 ClassB。
ClassA:-
ClassB:-
SampleParcelable:-
デバッグ後、オブジェクトの値が異なる1つの理由がわかります。これは、その時点でgetParcelableExtra()を使用してClassBでオブジェクトを取得するときに、内部で新しいオブジェクトを作成するSampleParcelableクラスcreateFromParcelメソッドが呼び出されるためです。たぶん私は間違っています。
これに対する解決策は得られません。ClassAアクティビティで設定されたオブジェクトを使用していくつかの値にアクセスできるように、新しいクラスに同じオブジェクトが必要です。
前もって感謝します
android - リモートサービスにオブジェクトを渡すParcel.readException
クライアントがAndroidが提供するIPCの通常のメカニズムでログオンできるリモートサービスを作成しましたが、バインディングは機能しているようです。この「奇妙な」例外が発生するため、オブジェクトをパラメーターとして渡さなければならないメソッドを呼び出すと、問題が発生します。
.aidlファイルから生成されたプロキシクラスからスローされたようです。
さらに奇妙なことに、オブジェクトは正しく渡されたように見えますが、おそらく周りに何か問題があります。何か案が?
android - Android:パーセル解除により、メモリ不足の例外が発生します。オブジェクトを検査する方法は?
設定は次のとおりです。
- アイテムのリストを含むアクティビティがあります(サーバーから更新され、プレーンなJavaクラスで表されます)。アイテムは、各行のカスタムBaseAdapterおよびカスタムビューを介してレンダリングされます。
- アイテムはParcelableを実装しているため、画面を回転させると、アイテムはParcelableArrayListとしてバンドルに保存され、サーバーに戻らずに復元されます。
これまでのところ、これはかなり簡単な設定ですが、これらの項目の1つを別のアクティビティに渡したいと思います。バンドルには「pubExtra(String、Parcelable)」メソッドがあり、これを使用してオブジェクトをそこに配置し、インテントを介して渡します。これを行うと、OutOfMemoryExceptionが原因でデバイスが強制終了し始めました。オブジェクトの区画を解除しようとすると、〜30mb(!)を要求するようです。
オブジェクト自体にはいくつかのint/float / Stringフィールドと関連するメソッドしか含まれていないため、オブジェクトは他の何かへの参照を保持している必要があるようです。コードまたはデバッグインスペクターを調べてもこれを追跡できず、ヒープビューアーを効果的に使用する方法がわかりません。
助言がありますか?
これがスタックトレースです
java - Androidでのパーセラブルと継承
継承を伴わない単一のクラスで動作するParcelableの実装を取得しました。継承に関しては、インターフェイスを実装するための最良の方法を見つけるのに問題があります。私がこれを手に入れたとしましょう:
質問は、BのParcelableインターフェイスを実装するための推奨される方法はどれですか(Aでは?両方で?どのように?)
android - どこで/いつ describeContents() が使用されますか?
Parcelableのこのメソッドがいつどこで呼び出されるか知っている人はいますか?
オーバーライドする必要があります。しかし、それを使って何か役に立つことを考えるべきでしょうか?
android - Android: ビュー間でデータを渡す
私の Android アプリには、PortraitClass と LandscapeClass の 2 つのカスタム ビュー クラスがあります。どちらも同じことをします。アプリを実行すると、ビュー クラスは SDCard からいくつかの画像を取得し、操作 (スキューなど) して表示します。2 つのクラスの唯一の違いは、画面上の画像のレイアウトがわずかに異なることです。
2 つの display.xml ファイルがあります (1 つはレイアウト フォルダーの下に、もう 1 つはレイアウト ランドの下にあります)。レイアウト フォルダーの下にある 1 つは Portrait を追加し、もう 1 つは Landscape クラスを追加します。
方向の変更時に、あるクラスから別のクラスに情報 (画像番号といくつかのビットマップ) を送信して、すべてのビットマップを再度フェッチする必要がないようにし、表示されていたものを表示したいと考えています。
小包化可能なものはちょっと混乱しています。this_exampleに従ってみましたが、onRestoreInstance で、Parcelable の "mSuperState" が null であり、classCastException @ "SavedState ss = (SavedState)state" が発生することに気付きました。私が渡そうとしている整数(画像番号)はそこにあります。何が間違っているのかわかりません。
android - Android: パス リスト別のアクティビティへ
タイプ GeoPoint の ArrayList があります。
points別のアクティビティに渡し、そのアクティビティのデータを取得したいと考えています。どうすればいいのですか?を使用する必要があることはわかっていますがparcelable、検索しましたが、ArrayLists を渡す方法が見つかりませんでした。
android - ネストされたパーセリング:RuntimeException-オフセット440で不明なタイプコード3211319をアンマーシャリングします
Activity別のコンテキストで実行されている可能性のあるにデータを送信する必要があります。ArrayListこのために、インスタンスメンバーの1つとしてデータ型がBであるクラスAを作成しました。クラスBをクラスAの内部クラスとして宣言しました。このクラスAのインスタンスをを介して送信するために、IntentクラスAとBの両方を作成しParcelableました。
クラス構造は次のようなものです(これには、クラスを作成するために記述されたコードなどの完全なコードは含まれていませんParcelable)。
putExtra (String name, Parcelable value)この関数を使ってデータを入れました。
しかし、受信側では、次の例外が発生しました。
次に、クラスBをクラスAの外に移動しました(これは内部クラスの問題である可能性があると考えたため、CREATOR静的を宣言しました。この静的宣言はクラスBがクラスAの内部クラスの場合は存在しませんでした)。しかし、それは役に立ちませんでした。
これは、ネストされたパーセルが原因のようです。
なにか提案を ??
注:android.os.Bundle.putParcelable(String key, Parcelable value)Bundleクラスの関数を使用し、それを使用してマーシャリングを解除するとandroid.os.Bundle.getParcelable(String key)、すべて問題ありません。したがって、問題はインテントのみに関連しているようです。
android - バンドルを介してオブジェクトを送信する方法
バンドルを介して処理の大部分を行うクラスへの参照を渡す必要があります。
問題は、インテントやコンテキストとは何の関係もなく、大量の非プリミティブ オブジェクトがあることです。クラスをパーセル可能/シリアライズ可能にパッケージ化してに渡すにはどうすればよいstartActivityForResultですか?