問題タブ [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.
java - getParcelableArrayListExtra を取得すると NullPointerException が返されますか?
Parcelable クラスは次のとおりです。
データは次のような意図で送信されます:
反対側でデータを受信すると、これにより NullPointerExceotion が作成されます
LogCat 出力:
java - Android Parcelable タイプをインスタンス化できません
私は Android アプリに取り組んでおり、Parcelable を使用して情報を渡そうとしています。だからここに私が持っているものがあります。
ただし、コンパイルしようとするとエラーが発生します(コメントを配置した場所)
タイプ ロールをインスタンス化できません
これについて何か考えはありますか?
よろしくお願いします
android - 小包でバインダーオブジェクトを見つける
Android区画でバインダーオブジェクトを見つけるにはどうすればよいですか? ビットマップを持つパーセルをマーシャリングしたいのですが、パーセルがバインダー オブジェクトを持っているという実行時例外が発生しました。
android - Android カスタム KeyEvent が TextView に渡されない
SoftKeyboard IME Android サンプル コードを編集して、カスタム KeyEvent をアプリケーションに渡しました。このKeyEvent Constructorを使用してこれを行います。
私のアプリケーションには、このスレッドonKey()に従って設定した CustomTextView があり、次のように記述しました。
ただしevent.getCharacters()、null 以外の文字列を返すことはありません。ここに何か欠けているものはありますか?私が自分の目的のために操作しようとしているこの特定の KeyEvent コンストラクターの使用を管理するドキュメントはあまりありません。
編集: KeyEvent.writeToParcel(...) 関数が文字列をパーセルしない可能性が高いため、KeyEvent が TextView に送信されるとデータが失われます。
この方法で構築された KeyEvent のマーシャリングとアンマーシャリングを試してみましたが、実際には文字列はもう存在しません。この動作は非常に奇妙です。これがなぜなのか誰か知っていますか?
最後のログ ステートメントは常に null を生成します。
android - NDKの共有メモリ領域
ashmemネイティブコードからマッピングおよびアクセスされる共有メモリブロック(リージョン)が必要です。また、このブロックをいくつかのアプリケーションで使用したいと思います。SDKレベル7(Android 2.1)でも動作させたい
2つのルートがあります。ネイティブコードでashmemリージョンを作成できます。しかし、問題は、整数ファイル記述子を別のプロセスに渡すにはどうすればよいかということです。FileDescriptorを介してオブジェクトをマーシャリングすることはできますがParcel、生のFDの周りにオブジェクトを構築する方法はありません。整数FDの構築と取得をサポートするものもParcelFileDescriptorありますが、関連するメソッドはSDKレベル12以降でのみサポートされます。
または、を作成することもできますMemoryFile。パーセルでそれを渡すための醜い方法があります。しかし、ネイティブコードに何かを持たせるために、ファイル記述子を取得するにはどうすればよいmmap()ですか?
android - Androidでリフレクションを使用してオブジェクトをパーセルするためのライブラリはありますか?
リフレクションを使用してAndroidでオブジェクトをパーセルできるライブラリはありますか?Gsonに似ていますが、Parcelization用です。
android - アンパーセルエラーAndroid
Objectからのインスタンス化Parcelがをスローするという問題が発生していますNullPointerException。私のクラスの連絡先Parcelableは、CREATORを実装し、含み、すべての接続が機能しているようです。Contactオブジェクトは、アドレス帳の連絡先を表します。使用される変数は次のタイプです。
コンストラクターは、すべての文字列を ""に初期化し、すべてのリストを空のリストに初期化します。およびメソッドwriteToParcelをContact(Parcel in)以下に示します。
..。
私が現在取り組んでいるテストでは、有効な姓名、1つの電話番号、およびメモが提供されます。この区画をupackしたときに得られる関連する出力は次のとおりです。
私は間違って何をしていますか?数字を文字列リストとして記述できないのですか、それとも間違ったことをしましたか?
android - フラグメントの状態を保存すると、パーセル可能なオブジェクトが原因で StackOverflow エラーが発生する
1 つのアクティビティで 2 つの異なるフラグメントを使用しています。フラグメントの 1 つはリストを含み、もう 1 つはリストの各要素の詳細ビューを含みます。アクティビティがフラグメントを作成すると、2 つのオブジェクトが新しいインスタンスのパラメーターとして渡されます。
これは、内部に多くのフィールド (BigIntegers、ArrayLists、Strings..) を持つ複雑なオブジェクトです。このオブジェクトは、フラグメントで使用するために Parcelable を実装しています。情報がフラグメントを介して渡される場合、データの解析には問題はありません。実際には、このオブジェクトは、フラグメント間でパラメーターとして渡すためではなく、状態を保存するためにパーセル可能である必要があると思います。
このオブジェクトは、メイン オブジェクトへの参照を含むオブジェクトのリスト内に含まれます。O1 をオブジェクト 1、O2 をオブジェクト 2 とすると、これは「グラフィカルな」説明になります。
O1:
- 弦
- BigInteger
- 配列リスト
- ....
- 配列リスト
O2:
- BigInteger
- O1<-------- これは O1 オブジェクトへの参照です
(電話でホームをクリックして) アクティビティを終了し、状態を保存しようとすると、StarOverflow エラーが発生します。参照ではなくオブジェクト全体を保存しようとして、parcelable が無限ループに入ることに関連している可能性がありますか? Android でパーセル可能なオブジェクトを処理する際に、多くのトラブルに遭遇しました。
android - カスタムの parcelable オブジェクトを extra または ArrayList で RemoteViewsService に渡すと appwidget が壊れる
基本的に私がやりたいことは、インテントを介してカスタムのパーセル可能なオブジェクトを RemoteViewsService に、したがって私の RemoteViewsFactory に渡すことです。何らかの理由で、これは単に機能しません:S これを実行しようとすると、ウィジェットは代わりに「ウィジェットの読み込みの問題」というテキストを表示してしまいます。
同じことを試してみると、RemoteViewsService に渡す代わりに、通常のアクティビティに渡すだけで、期待どおりに動作します。
私は自分の答えをオンラインで見つけようとしましたが、うまくいかなかったので、助けになることを期待してここに投稿します.
私はしばらくの間、これをメインプログラムで機能させようとしています。しかし、私はそれを理解できませんでした。だから私はそれを煮詰めようとしました。私は問題を再現することに成功しました。私が問題を再現したベースは、CommonsGuy の LoremWidget ( https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget/LoremWidget ) とランダムに分割可能な例 ( http ://prasanta-paul.blogspot.dk/2010/06/android-parcelable-example.htm l) 私の問題を示すために動作するように修正しました。(これら2つのリンクのコードを使用して、トラブルに巻き込まれないことを願っています)
誰かが私が話していることをテスト実行したい場合に備えて、ランダムなファイルホストにアップロードされた完全なコードを次に示します: http://www.filedropper.com/remoteviewserviceparcelerrorexample
だから私の質問を要約すると:
パーセル化可能なオブジェクト (単独で、または ArrayList にラップされたもの) を RemoteViewsService に渡すことができないのはなぜですか? (同じコードがアクティビティで問題なく動作する場合)
誰かが私を助けてくれることを本当に願っています。現在、私のメイン プログラムでは、内部ストレージにシリアライズしてから、すぐに RemoteViewsService から再度デシリアライズしています。
編集:私のメインプログラムで何らかの理由で、カスタムオブジェクトの1つを渡し、ArrayListとStringsをnullに設定し、ブール値をすべてfalseにすると(基本的にオブジェクトが作成時にどのように見えるか)、ウィジェットは正常に見えます (つまり、「ウィジェットの読み込みに問題があります」というメッセージは表示されません)。
編集:外観を見た後(私が実行していたアプリにフィルタリングされていません)、いくつかのエラーが表示されます(何もファイルされていない場合は、フィルタリングされていないすべてを見ることを学ぶほうがよいと思います:)):
android - Parcelオブジェクトのクローンを作成する方法
Parcelオブジェクト(パーセル可能ではない)のクローンを作成したい。
clone()メソッドは保護されているため、使用できません。また、Parcelクラスは「clonable」を実装していないため、リフレクションを使用して呼び出すことはできません。
問題の解決策を実行しようとしました: パーセルオブジェクトのコピーを作成します が、パーセルタイプ自体には適用されません-その理由は、パーセルタイプ自体に「writeToParcel」が定義されていないためです。したがって、オブジェクト'Parcel a'の場合、a.writeToParcel(parcel、0)はコンパイルされません。