2016-11-17 2 views
0

私が作ったAndroidアプリで情報を保存しようとしています。私は名前を保存したい、 "ロバート"。これに関して私はShared Preferencesを調べており、SharedPreferencesを作成する方法を説明するチュートリアルは見つかりません。共有設定を作成する必要はありませんか?

すべてのチュートリアルは、次のように起動します。

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 

しかしgetPreferencesは()からオブジェクトを取るところ、彼らは説明しません。

このオブジェクト(SharedPreferencesオブジェクト)はいつ作成されますか?文脈とともに作成されていますか?それはそれぞれの活動と共に作られていますか?

私はAndroidには新しく、中間(マイナス)Javaプログラマーです。そして、あなたはこののように再びそれらを得る

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("name", "Robert"); 
editor.commit(); //Or use editor.apply() 

答えて

2

SharedPreferencesがこのように作成されているので、

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
    String name = prefs.getString("name", "No name defined");//"No name defined" is the default value. 

、のgetString()は、以前に格納された値を取得し、 'name'の文字列をまだ格納していない場合、デフォルト値を返します。

保存したオブジェクトはシステムに保存され、常に取得できます。

更新: getSharedPreferences()メソッドはSharedPreferences.Editorインターフェイスを返します。 android docs

SharedPreferencesオブジェクトの値を変更するために使用されるインターフェイス。エディタで作るすべての 変更は、バッチ処理、そしてあなたがコミット()または(適用呼び出すまで戻っ 元SharedPreferencesにコピーされません)

されているUPDATE 2: This answerはのストレージ詳細が含まれていますSharedPreferences。

+0

最初のコード段落では、エディタを作成する方法を示します。私は、getSharedPreferences()が出現するSharedPreferencesオブジェクトについてより興味があります。あらかじめ何も保存されていない場合はデフォルト値を返します。これはアクティビティのデフォルトオブジェクトですか? – Einar

+0

getSharedPreferences()メソッドはSharedPreferences.Editorインターフェイスを返します。私はインターフェイスについてのより多くの情報で私の答えを更新します。 –

+0

@Einarプリファレンス名を省略した場合は、アクティビティのローカルなプリファレンスがあります。XMLファイルが作成またはオープンされます。 –

1

SharedPreferencesは、アプリのデータフォルダにxmlファイルとして保存されます。 getSharedPreferencesからはcontextをどう使うかは関係ありません。そのファイルからそれらのプリファレンスを取得します。最初に読み込まれると、プリファレンスファイルはプロセス全体にキャッシュされるので、その後の各getSharedPreferencesコールで同じオブジェクトを返すようになります(異なるアクティビティからのものであっても)。

詳細情報hereおよびhere

+0

XMLファイルは、getSharedPreferences()を初めて呼び出すときに作成されますか? – Einar

+0

それは正しいです。 –

関連する問題