私は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. 他のオブジェクトと文字列でオブジェクトプロパティにアクセスする方法
- 7. 同じアクティビティのインスタンスをフラグメントで取得する方法は?
- 8. C#winforms異なるイベントハンドラ内の同じオブジェクトにアクセスする方法
- 9. WSO2で異なるテナントユーザーの同じサービスプロバイダにアクセスする方法
- 10. オブジェクトをアクティビティからフラグメントにアクセスする方法は?
- 11. 同じアクティビティの2つのフラグメントに切り替える方法
- 12. Android:同じアクティビティでページをブラウズする方法iPhone
- 13. 同じアクティビティでメニューアンドロイドをリロードする方法は?
- 14. 同じ方法で列と行のインデックスにアクセスする
- 15. 複数のスレッドで同じarraylistにアクセスする方法
- 16. 同じオブジェクトのgetInstanceメソッドでインラインで実装されたインターフェイスメソッド内のオブジェクトにアクセスする方法
- 17. 複数のアクティビティに同じコードを含める方法(Androidスタジオ)
- 18. リスト内のオブジェクトに他のクラスからアクセスする方法は?
- 19. Sitecore:異なるセクションで同じフィールド名にアクセスする方法
- 20. c#XAML同じページの他のUserControlからUserControlにアクセスする
- 21. 同じアクティビティのフラグメント間でgson JsonObjectを渡す方法
- 22. すべてのアクティビティで同じSlidingUpPanelを持つ方法
- 23. IDが他の配列オブジェクトと同じである場合、配列のオブジェクトを削除する方法
- 24. Reduxストアで同じオブジェクトを同期する方法は?
- 25. 他のマシンからDjango devserverにアクセスする同じネットワーク
- 26. アンドロイドタブホスト同じアクティビティ
- 27. あるアクティビティで初期化されたオブジェクト値を他のアクティビティ(Xamarin.Android)に取得する方法は?
- 28. 同じパッケージ内のメインクラスのクラスにアクセスする方法
- 29. 同じクラスの他のインスタンスからアクセスできるプライベートメンバー
- 30. 他のスレッドで他のアクティビティの後にExecutorServiceオブジェクトをシャットダウンする方法はありますか?
明確な答えをありがとう – user6798995
マニフェストファイルにアプリケーションクラスを追加することを忘れないでください。 –
私は感謝しません! – user6798995