質問

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

役に立ちましたか?

解決

設定とは、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)
    

    putString、putBoolean などの put 関数が多数あります。文字列はキー (「バージョン」、「良好な実行」) であり、値は値 (「1.5.2」、true) です。

  4. バッファをフラッシュする

    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);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top