問題タブ [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 - Android - リストを同梱する場合パーセリングまたはシリアライズを使用しますか?
List<MyClass>メイン アクティビティからセカンダリ アクティビティに適切に渡すにはどうすればよいですか?
私が理解していることから、データをバンドルするには2つの方法があります:ParcelingとSerializing. それぞれの長所と短所は何ですか?
ありがとう
java - Androidのインテント内のオブジェクトの浅いコピー
インテントを通じて他のアクティビティに渡したいオブジェクトがいくつかあります。ただし、それらは読み取られるだけなので、他のオブジェクトの浅いコピーである必要があるだけです (変更される場合でも、元のアクティビティでも変更する必要があります)。また、オブジェクトのすべてのフィールドがシリアライズ可能であるとは限らないため、オブジェクトをシリアライズ可能にすることもできません。
また、パーセル化すると同じ問題が発生するようです。確かに、いくつかのフィールドをアクティブ オブジェクトとして追加できるように見えますが、すべてを浅いコピーにすることはできません。
インテント内のオブジェクトの浅いコピーを作成する方法、または通常 Java でパラメーターを渡すように、データの浅いコピーを別のアクティビティに渡す方法はありますか? ありがとうございました。
android - サービス/アクティビティ間でオブジェクトを交換するためのパーセルとシリアル化可能
最初に全体像を示しましょう。私は、いくつかのアクティビティやサービスの中で、オブジェクトの絶え間ないレクリエーションと交換を呼び出すロケーションベースのアプリケーションを開発しています。交換されるオブジェクトを作成するために必要なデータはSQLiteデータベースに保存され、リモートSQLデータベースからデータを取得することでデータが入力されます。
オブジェクトの生の属性を(インテントを介して)アクティビティ/サービスに渡すことは、コーディングの大きなオーバーヘッドであり、アプリケーションが持つ可能性のあるすべての拡張機能の見通しを低下させることがすぐに明らかになりました。そこで、すぐに、以下に示すように、メインオブジェクトクラスを拡張してParcelableクラスを実装することにしました。
パーセルフィールドへのすべてのデータエントリをチェックしましたが、次の例外が発生し続けます。
このため、MyProduct.classがシリアライズ可能を実装していることを検討し、よりエラーを許容する構造になることを期待しています。上記の場合のそのような交代の賛否両論は何でしょうか?
android - 次のアクティビティのインテントとしてオブジェクトを配置
Object型のオブジェクトをExtraとしてインテントに入れることは可能ですか?オブジェクト型の変数があり、オブジェクトのデータ型に関する値が割り当てられるまでわかりません。たぶん、シリアル化と関係があるのでしょうか、それともバンドルとして、私にはわかりませんか?そして、次のアクティビティで、この値を取得して?に格納するにはどうすればよいArrayList<Object>ですか?
java - パーセルを使用して不明なデータ型のオブジェクトを送信する際の問題
先日、インテントを小包としてアクティビティにオブジェクトを送信することについて質問しましたが、自分の状況でそれを行う方法がわかりません。Object x;次のようなもので設定されたオブジェクト型の変数がありますx = edit.getText().toString();。この場合、xはStringオブジェクトになりますが、xを整数型とSQLDate型の両方として設定することもできます。オブジェクトを小包として送信する方法の例を見ると、カスタムデータ型の場合でも、データ型が何であるかを事前に知っておく必要があるように思われます。私はこれに完全に固執しているので、これに関するどんな助けも大いに感謝されるでしょう。
フローは次のとおりです。
Object x;- 創造された。
x = String object||Integer object||sqldate object-xには値が割り当てられます
i.putExtra("object", x);-xは、パーセルされた後、次のアクティビティに送信されます。
java - パーセラブルオブジェクトの配列リスト
これまでに多くのパーセル可能な例を見てきましたが、少し複雑になると、何らかの理由で機能させることができません。Parcelableを実装するMovieオブジェクトがあります。このブックオブジェクトには、ArrayListsなどのいくつかのプロパティが含まれています。アプリを実行すると、ReadTypedListを実行するときにNullPointerExceptionが発生します。私はここで本当にアイデアがありません
レビュークラス:
誰かが私を正しい軌道に乗せることができれば、私は非常に感謝しています。私はこれを探すのにかなりの時間を費やしました!
ウェズリーに感謝します
android - Android DroidCharts SaveInstanceState の問題?
JFreeChart ( http://www.jfree.org/jfreechart/ ) をグラフ作成ライブラリとして使用しています。しかし、Android の場合、基本的に Android 用の JFreechart である DroidCharts ( http://code.google.com/p/droidcharts/ ) を使用します。Androidでチャートを作成しました。最初は明らかですが、プロットにいくつかの値を追加すると、チャートにプロットされます。
Android の向きを縦向きから横向きに回転すると、Android のライフサイクルが原因で画面が再び空白になります (破棄が続き、onCreate がもう一度呼び出されます)。
向きが変更されたときに、「onSaveInstanceState」を使用してプロット ポイントを保存し、「onRestoreInstanceState」でもう一度作成する方法を知る必要があります。? どんなコード スニペットも役に立ちます。ありがとう
java - Android: Parcelable.writeToParcel と Parcelable.Creator.createFromParcel は呼び出されません
ここに質問を投稿するのはまったく初めてですが、ここで何年も読んでいます。普段はネットで調べればだいたい答えは出てくるのですが、今回は迷ってしまいました…。
なぜこれが機能しないのかを理解するためにさらに 1 日を費やした後、私は助けを求めることにしました。
問題: Android ゲームで、ユーザーがホーム画面のボタンを押したときなどにアプリケーションにその状態を記憶させなければならないところまで来ました。いくつかの検索の後、アプリケーションを再度開いた後にクラスを適切な状態に初期化するには、Parcelable インターフェイスをサポートしてバンドルで渡す必要があることに気付きました。
私の onStop 関数と onStart 関数では、ゲームの状態をバンドルに保存したりバンドルから復元したりしますが、バンドルで putParcelable と getParcelable 関数を呼び出すと、オブジェクトの writeToParcel 関数と createFromParcel 関数は呼び出されません。
これはゲームの相対的な複雑さが原因ではないかと心配し、非常に単純なアプリケーションを作成して動作させるのが最善であると考えました。
オンラインで見た多くの Parcelable の例に基づいて、これが私のクラスになりました。
そして、私の Main アクティビティから、次の関数を呼び出してデータを保存/復元します。
しかし、何らかの理由で、(putParcelable および getParcelable 関数を使用した) どちらの関数も、テスト クラスで適切な Parcelable 呼び出しを行いません。
最も奇妙なことは、どういうわけか正しい値を読み取ることです (クラスでより多くの変数を試しました) が、私のデバッグとログは、アプリケーションが writeToParcel と createFromParcel を取得できないことを示しています。
ここで何が欠けていますか?
どんな助け/考えもいただければ幸いです。
java - シリアル化可能なオブジェクトを読み取るパーセル可能enquentClassNotFoundException
Serializableオブジェクトを実装するクラスを実装しました。
しかし、バンドルで使用しようとすると、次の例外が発生します。
私は何が間違っているのですか?
編集
うーん...Parcelableを使用する場合の同様の問題:
android - Parcelable と onClickListeners の使用方法
Parcelables について読んでいますが、読めば読むほど混乱してきます。
私がしようとしていることは次のとおりです
- 外部 API に接続して JSON データを取得します (現在動作中)。
- JSON オブジェクトを HashMap に配置する文字列にうまく解析しています。ListView を使用して、スクロール可能なデータを表示しています (現在作業中)
- 新しいインテントを設定する onClickListener を設定しました(現在動作中)
- ここで私は混乱しています。私の目標は、ユーザーが Listview 内の項目をクリックして、クリックした項目に関する詳細情報を含む新しい画面に移動できるようにすることです。
ポイント番号 4 への質問:
- Parcelable クラスを使用して JSON オブジェクトをインテントに渡しますか? 私の場合、それは最良の選択肢ですか?
- Parcelable が正しい選択である場合、JSON オブジェクトが渡されるように Parcelable を実装する新しいクラスを作成しますか? どうやって進めばいいのかわからないのだと思います。私が見たすべての例には、writeToParcel() メソッドに渡される文字列がいくつかあります。それが複数のプロパティを持つオブジェクトにどのように変換されるかはわかりません。
お読みいただきありがとうございます。