44

XMLファイルに自分の設定があるAndroidアプリケーションがありますが、これは正常に機能します。設定画面全体を表示するのではなく、コードを使用して設定の1つを設定したいのですが、これを行うにはどうすればよいですか?

4

3 に答える 3

123

設定では、Androidスマートフォンの設定ではなく、アプリケーションの設定を参照していると思います。

アプリケーションの実行間で設定を保存するには、次の手順を実行する必要があります

  1. SharedPreferencesオブジェクトを作成します

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    

    文字列nは設定を識別し、2番目の引数はそれらがアクセスされるモードです

  2. Editorオブジェクトをインスタンス化します

    SharedPreferences.Editor editor = settings.edit();
    

    注:settings.editor.edit()を試さないでください。永続的なオブジェクトが作成されず、以下のコードが機能しません。

  3. 好みをバッファに書き込む

    editor.put...(String, value)
    

    put関数、putString、putBooleanなどが多数あります。文字列はキー( "version"、 "good run")であり、値は値( "1.5.2"、true)です。

  4. バッファをフラッシュします

    editor.commit();
    

    これは実際にあなたが好みに置くことを書きます。この行の前にアプリがクラッシュした場合、設定は書き込まれません。文書化されたバグもあります。commit()は、成功または失敗を示すブール値を返すことになっています。最後にチェックしたところ、常にfalseが返されました。

これらの設定は電話に保存され、アプリケーションにのみアクセスできます。

その他のドキュメントはこちら

于 2009-02-16T06:02:11.153 に答える
3

以下のコードを使用して、共有設定に何かを保存できます

public static void save(String valueKey, String value) {
    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(context);
    SharedPreferences.Editor edit = prefs.edit();
    edit.putString(valueKey, value);
    edit.commit();
    }

プリファレンスを読み取るには:

public static String read(String valueKey, String valueDefault) {
    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(context);
   return prefs.getString(valueKey, valueDefault);
}
于 2016-04-29T05:32:54.730 に答える