私はFacebookのようなアプリケーションのプロジェクトにおり、私はFirebase
データベースを使用しています。ユーザー(ログインしたユーザー)のオブジェクトがあり、そのオブジェクトに属性(プロフィールメッセージのタイムラインのような)さまざまなアクティビティをユーザがナビゲートしたときに、いつでもデータをロードすることができます。MainActivity
(user.setProfile
のような)1つのオブジェクトにデータを入れ、そのオブジェクトにすべてActivity
からアクセスさせたいですか?それは可能ですか?(簡単な例は非常に高く評価されます)他のアクティビティで同じオブジェクトにアクセスする方法
答えて
解決策の1つは、アプリケーションクラスを使用することです。
class FbprojectApplication extends Application{
static UserObject user;
public static void setUserObject(UserObject user){
this.user=user;
}
public static UserObject getUserObject(){
return user;
}
}
アンドロイドアプリケーションクラスでは、アプリケーション全体でライフサイクルがあるため、必要に応じてアクティビティを使用して呼び出すことができます。あなたの活動から今
、
public class MainActivity extends Activity{
//initialize userobject whenever you need to.
void initializeUser(UserObject user){
FbprojectApplication.setUserObject(user);
}
}
は、同様に、この変数は、任意のクラスから利用できるようになります。
public class OtherActivity extends Activity{
//get userobject whenever you need to.
FbprojectApplication.getUserObject();
}
ユーザオブジェクトは、アプリケーションクラスの静的であるとして、あなたは様々なアクティビティ間で矛盾を気にせずにそれを再初期化することができます。
シングルトンデザインパターンを試してみてください。スレッドセーフな問題を忘れないでください。
私はシングルトンパターンがJavaで動作することを知っていますが、コンストラクタを作成する必要がありますが、アクティビティはどういうものですか?どのようにそれをそこで働かせることができますか? – user6798995
シングルトンクラスを作成し、そのインスタンスをActivityクラスで使用します。必要なインターフェースを提供するだけです。たとえば、 'private T userProfile'、' public T getUserProfile() '、' public void setUserProfile(T) 'などです。 – jules3c
のアプリを通じて依存関係のこの種を処理するための良い方法は、あなたがオブジェクトを保持することができます怠惰になりたい場合は、このような短剣http://square.github.io/dagger/
として、依存性注入フレームワークを使用することですアプリケーションクラスでは、これはどのアクティビティでも利用可能になります。
static
オブジェクトを起動時に宣言することをお勧めします。Activity
その後、Firebaseから値を取り込んだ他のすべてのActivity
の値を取得できます。
- 1. 他のアクティビティからアクティビティのボタン/ビューにアクセスする方法
- 2. 他のアクティビティからアクティビティを閉じる方法
- 3. Android/Java:複数のアクティビティから同じSQLite DBオブジェクトにアクセスする
- 4. 同じクラスの他のオブジェクトのアクセス変数
- 5. オブジェクトをアクティビティからフラグメントにアクセスする方法は?
- 6. 同じアクティビティの2つのフラグメントに切り替える方法
- 7. Android:同じアクティビティでページをブラウズする方法iPhone
- 8. 同じアクティビティでメニューアンドロイドをリロードする方法は?
- 9. 同じオブジェクトのgetInstanceメソッドでインラインで実装されたインターフェイスメソッド内のオブジェクトにアクセスする方法
- 10. 複数のスレッドで同じarraylistにアクセスする方法
- 11. リスト内のオブジェクトに他のクラスからアクセスする方法は?
- 12. Sitecore:異なるセクションで同じフィールド名にアクセスする方法
- 13. c#XAML同じページの他のUserControlからUserControlにアクセスする
- 14. すべてのアクティビティで同じSlidingUpPanelを持つ方法
- 15. IDが他の配列オブジェクトと同じである場合、配列のオブジェクトを削除する方法
- 16. Reduxストアで同じオブジェクトを同期する方法は?
- 17. 他のマシンからDjango devserverにアクセスする同じネットワーク
- 18. アンドロイドタブホスト同じアクティビティ
- 19. 同じクラスの他のインスタンスからアクセスできるプライベートメンバー
- 20. 同じパッケージ内のメインクラスのクラスにアクセスする方法
- 21. Androidで異なるセッションやアクティビティを同じセッションに維持する方法は?
- 22. C#の他のフォームに同じ変数を渡す方法
- 23. 他の観察可能なオブジェクトからオブジェクトにアクセスする方法
- 24. ImageView/TextViewを他のオブジェクトの右側に追加する方法ImageView/textViewを同じレイアウトにする
- 25. 同じクラスの他のメソッドをキャッシュする方法は?
- 26. 他のアクティビティからアクティビティのタイマーを停止する方法
- 27. 2つのオブジェクトを同じ値でマージする方法は?
- 28. チェックボックスの値をJavascriptオブジェクトと同じに設定する方法
- 29. 複数のSVGオブジェクトに同じアニメーションを適用する方法
- 30. 同じ関数を別のオブジェクトに適用する方法
明確な答えをありがとう – user6798995
マニフェストファイルにアプリケーションクラスを追加することを忘れないでください。 –
私は感謝しません! – user6798995