web-dev-qa-db-ja.com

Android複数のアクティビティで設定を共有

  1. 以前のアクティビティから保存された共有設定を取得するにはどうすればよいですか?
  2. ファイルの書き込みやその他のマニフェストの変更を有効にする必要がありますか?
14
kabuto178

それを達成するために特別なマニフェストの変更は必要ありません。

すでに設定を保存していると仮定すると、以下に示すようなことを行うと、いつでもそれらの設定を読むことができます。

  1. 共有設定ファイルに書き込む:

    _  SharedPreferences prefs = getSharedPreferences("your_file_name", MODE_PRIVATE);
      SharedPreferences.Editor editor = prefs.edit();
      editor.putString("yourStringName", "this_is_the_saved_value");
      editor.commit(); // This line is IMPORTANT. If you miss this one its not gonna work!
    _
  2. 共有設定ファイルからの読み取り:

    _  SharedPreferences prefs = getSharedPreferences("your_file_name",
      MODE_PRIVATE); String string = prefs.getString("yourStringName",
      "default_value_here_if_string_is_missing");
    _

デフォルトファイルを使用して、設定を保存/読み取りできます。上記の2つのコードスニペットの最初の行を次のようなものに置き換えるだけです:SharedPreferences prefs = getDefaultSharedPreferences(getApplicationContext());

それでおしまい! Android開発者専用ページ ここ を確認してください。

それが役に立ったことを願っています。それについて教えてください。

35
yugidroid

両方のアクティビティが同じファイルに対して書き込み/読み取りを行っていることを確認する以外は、特別なことをする必要はありません。内部的には、設定はXMLファイルとして保存されるだけです。

したがって、選択肢は次のとおりです。

1)両方のアクティビティから PreferenceManager.getDefaultSharedPreferences() を使用して、デフォルトファイルに書き込みます。

2) Context.getSharedPreferences() を使用してカスタムファイル名を指定し、両方のアクティビティで同じ名前を使用します。

7
wsanville

共有設定は、共有されたものです。 Editor.commit()を呼び出して編集した後に設定を適切に保存する限り、それらは将来使用可能になります。

1
brthornbury