Android - コードで環境設定を設定するにはどうすればよいですか
-
23-08-2019 - |
質問
XML ファイルに設定を記述した Android アプリケーションがありますが、これは正常に動作します。設定画面全体を表示するのではなく、コードを使用して設定の 1 つを設定したいのですが、どうすればよいですか?
解決
設定とは、Android スマートフォンの設定ではなく、アプリケーションの設定を指していると思います。
アプリケーションの実行の間に環境設定を保存するには、次の操作を行う必要があります。
SharedPreferences オブジェクトを作成する
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
文字列 n は設定を識別し、2 番目の引数はアクセスされるモードです。
Editor オブジェクトをインスタンス化する
SharedPreferences.Editor editor = settings.edit();
注記:settings.editor.edit() は試さないでください。永続オブジェクトが作成されず、以下のコードは機能しません。
設定をバッファに書き込みます
editor.put...(String, value)
putString、putBoolean などの put 関数が多数あります。文字列はキー (「バージョン」、「良好な実行」) であり、値は値 (「1.5.2」、true) です。
バッファをフラッシュする
editor.commit();
これは実際に設定に書き込んだものです。この行より前でアプリがクラッシュした場合、設定は書き込まれません。文書化されたバグもあります。commit() は成功または失敗を示すブール値を返すことになっています。最後に確認したところ、常に false が返されました。
これらの設定は電話機に保存され、アプリケーションからのみアクセスできます。
詳しいドキュメントは、 ここ
他のヒント
私はこれを試みたが、うまくいきませんでした。
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
の代わりにこれを試してください:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
あなたはコードの下に使用してsharedpreferencesで何かを保存することができます。
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);
}