AndroidアプリケーションでXMLファイルに設定があり、正常に動作します。設定画面全体を表示するのではなく、コードを使用して設定の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)
多数のput関数、putString、putBooleanなどがあります。文字列はキー(「バージョン」、「グッドラン」)であり、値は値(「1.5.2」、true)です。 )
バッファーをフラッシュする
editor.commit();
これは、実際にあなたがプリファレンスに書き込みます。この行の前にアプリがクラッシュした場合、設定は書き込まれません。文書化されたバグもあります。commit()は、成功または失敗を示すブール値を返すことになっています。最後にチェックすると、常にfalseが返されました。
これらの設定は電話に保存され、アプリケーションからのみアクセス可能になります。
その他のドキュメントは here です
私はこれを試しましたが、うまくいきませんでした:
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);
}