2017-11-03 10 views
0

私は2つのフラグメントでアクティビティを持つアンドロイドアプリケーションを持っています。 1つはマップビューで、もう1つはリストビューで表示されます。主なアクティビティでは、gpsに基づいてデータベースからユーザのgpsと結果を取得し、そのデータをフラグメントに送信します。これは、フラグメント内で同じデータを2回呼び出す代わりに作成されたものです。しかし、多くの場合、フラグメントが作成される前に、バックエンドデータの要求とユーザーのgps座標が完了していません。フラグメント、アクティビティ、およびデータ

私はデータを前後に渡すためのインターフェースを設定しましたが、すべてのデータがそこに来るまでフラグメント作成を一時停止する方法を見つける必要があります。

アイデア?もし必要ならコードを掲示することができます。

+1

*すべてのデータがそこにあるまで断片化の作成を一時停止する* ... and pis *は応答しないアプリでユーザーをオフにしますか? ...カルバックを使用する...または見てみる[ここ](https://developer.android.com/topic/libraries/architecture/guide.html) – Selvin

答えて

0

フラグメントを「一時停止」しないでください。 「ローディング」状態、「ロード済み」状態、および「エラー」状態を有する。次に、各状態の間に何が起こっているかをユーザーに示します。

0

データの準備ができるまで、あなたはフラグメントのUIをブロックするべきではありませんが、代わりに、ページが(例えば、プログレスバー付き)ロードであることをユーザに示すべきです。

データが準備したら、(コールバック経由)データと断片を移入またはエラーメッセージが表示されるはずです。

0

ありがとうございます。私はそれを行うより良い方法を見つけました。そこで私は、アクティビティからのデータを、Interfaceを介してフラグメントに渡し、フラグメントのonAttachメソッドに渡していました。その代わりに、ローカル・ブロードキャスト・マネージャーを作成しました。ローカル・ブロードキャスト・マネージャーは、アクティビティー・クラスで完了するデータをlistenし、マップ・フラグメントに送信してデータを取り込みます。

これは他の人に役立つことを願っています。

関連する問題