8

Android の SharedPreferences を理解しようとしています。私は初心者で、それについてあまり知りません。

アプリの設定用に実装したこのクラスがあります

public class Preferences {
    public static final String MY_PREF = "MyPreferences";

    private SharedPreferences sharedPreferences;
    private Editor editor;

    public Preferences(Context context) {
        this.sharedPreferences = context.getSharedPreferences(MY_PREF, 0);
        this.editor = this.sharedPreferences.edit();
    }

    public void set(String key, String value) {
        this.editor.putString(key, value);
        this.editor.commit();
    }

    public String get(String key) {
        return this.sharedPreferences.getString(key, null);
    }

    public void clear(String key) {
        this.editor.remove(key);
        this.editor.commit();
    }

    public void clear() {
        this.editor.clear();
        this.editor.commit();
    }
}

問題は、デフォルトの設定を設定したいということです。それらはアプリのインストール時に設定され、後でアプリケーションによって変更され、永続的なままになる可能性があります。Preferences.xml について聞いたことがありますが、そのプロセスがわかりません。

誰かが私を助けることができますか?

お時間をいただきありがとうございます

4

3 に答える 3

14

簡単です。変数ごとに個別のデフォルト値が必要な場合は、それぞれに対して行う必要がありますが、メソッドで:

 public String get(String key) {
    return this.sharedPreferences.getString(key,"this is your default value");
}

ユーザーが変数にアクセスしたり作成したりしていない場合、システムはデフォルト値を値として設定し、あなたまたはユーザーがこの値を変更した場合、デフォルト値は無視されます。http://developer.android.com/guide/topics/data/data-storage.html#prefを参照してください

Android ドキュメントから直接:

SharedPreferences クラスは、プリミティブ データ型の永続的なキーと値のペアを保存および取得できる一般的なフレームワークを提供します。SharedPreferences を使用して、boolean、float、int、long、string などのプリミティブ データを保存できます。このデータは、ユーザー セッション間で保持されます (アプリケーションが強制終了された場合でも)。

于 2013-07-19T23:34:53.857 に答える
0

デフォルト値を文字列リソースに保存できます。

<string name="key_name">default_value</string>

そして、次のように取得します。

int ResId = context.getResources().getIdentifier(key_name, "string", context.getPackageName()));
prefs.getString(key_name,context.getResources().getString(ResId);
于 2015-05-08T22:50:08.830 に答える