私はアプリ内で2つのアクティビティを持っています:A & B.アクティビティAには、B(現在共有設定)が保存したデータが必要です。しかし、アクティビティAのデータを照会するには、Bのコンテキストが必要です。しかし、アクティビティAにはアクティビティBのコンテキストを取得する方法はありません(アプリケーションフローに従って)。どのような方法がありますか、またはデータベースを使用して、より良いオプションになりますか?SharedPreferencesまたはDatabase?
答えて
SharedPreferencesに保存する場合は、アクティビティBのコンテキストは必要ありません。アクティビティAのコンテキストは、アプリのSharedPreferencesにアクセスすることができます.AppのSharedPreferencesは、アプリに対して「グローバル」です。データベースを必要とする場合、あなたはデータは、あなたが保管されていたものを言いませんでした規定するよう
コード例
ActivityA.this.getSharedPreferences("SOMETHING", MODE_PRIVATE);
。したがって、伝えることは不可能です。
なぜアクティビティAのコンテキストが必要ですか? SharedPreferencesを保存/取得するには、各アクティビティ内でgetApplicationContext().getSharedPreferences()
を使用します。
また、保存しているデータによっては、インテントを使用してアクティビティAからアクティビティBにデータを渡すことができます。たとえば、アクティビティBをAから開始するには、次のようなものを使用します。
Intent i = new Intent(getApplicationContext(), ActivityB.class);
i.putExtra("someIntData",1234);
i.putExtra("someStringData","yourdata");
startActivity(i);
そして、あなたはあなたができるActivityB内のデータを必要な場所:あなたはSharedPreferencesやデータベースとファイルシステムをヒットする必要はありませんので
int yourIntData = getIntent().getIntExtra("someIntData",0);
String yourStringData = getIntent().getStringExtra("someStringData");
これは速くなります。
すべてのデータをSharedPreferencesに保存することができ、アプリケーションのすべてのアクティビティからアクセスできます。
は、同じようにそれを行うのここで説明:あなたがいずれかの活性を有する
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
を使用することができ、それは関係なく、どのアクティビティあなたの、あなたのアプリのパッケージ名に縛らSharedPreferences
オブジェクトを返します http://developer.android.com/guide/topics/data/data-storage.html#pref
コンテキストとして渡す。
また、共有設定の名前を選択してアクティビティのgetSharedPreferences
メソッドに渡すこともできます(Sam_DとGrahamの回答で指摘されているように)。
- 1. SharedPreferencesまたはSQLiteデータベース?
- 2. SharedPreferences:クラスまたはインターフェイスですか?
- 3. sqlxまたはdatabase/sql(golang)のBEGIN IMMEDIATE?
- 4. CGI FieldStorage()またはDatabase? Webスクレイピング
- 5. Textbox、Database、Gridview、Errorまたはsuccesメッセージ
- 6. C#またはJAVAの別のsqlite DataBaseと1つのsqlite DataBaseを同期
- 7. エラー - SharedPreferencesは
- 8. sharedpreferences
- 9. SharedPreferences
- 10. SharedPreferences
- 11. は、Oracle Database
- 12. EF Database First "データベース 'master'で拒否されたCREATE DATABASE権限。"
- 13. SharedPreferences - Android
- 14. Android SharedPreferences
- 15. Sharedpreferencesフラグメント
- 16. SharedPreferencesデフォルトモード
- 17. SharedPreferencesクラス
- 18. SharedPreferences - OnSharedPreferenceChangeListener
- 19. SharedPreferences issues
- 20. SharedPreferences Android
- 21. SharedPreferences値
- 22. SharedPreferences Facebook
- 23. android-sharedpreferencesはnull値を返します
- 24. メインアクティビティからの各フラグメントまたはバンドルのAndroid sharedpreferences?
- 25. Python Database
- 26. Drools Database
- 27. SharedPreferencesはXMLのプリファレンスのタイプまたはすべてを表示しません
- 28. com.google.firebase:firebase-databaseとcom.firebaseui:firebase-ui-databaseの違いは何ですか?
- 29. Android SharedPreferencesストアデータ
- 30. 円グラフ(SharedPreferences)