0

こんにちは、読んでくれてありがとう。

SharedPreferencesを使用して、作業中のAndroidアプリでデータを保存および取得するためのOOPアプローチを採用しようとしています。次のコードは、OOP以外のマナーで直接使用すると、Javaクラスで機能するため正しいと思います。ただし、私が作成したこのSharedPrefクラスでは、EclipseのMODE_PRIVATEでエラーが発生し、その理由がわかりません。ありがとう。

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

public class SharedPref {

    public static String File = "DPFile";

    public static void saveToSP(String key, String value) {
        SharedPreferences saveData = getSharedPreferences(File, MODE_PRIVATE);
        SharedPreferences.Editor editor = saveData.edit();
        editor.putString(key, value);
        editor.commit();
    }


    public static String getSavedData(String key) {
         SharedPreferences preferences = getSharedPreferences(File, MODE_PRIVATE);
         return preferences.getString(key, null);
    }
}

さらに、Activityクラスを拡張すると、getSharedPreferencesがエラーと次のメッセージの行になります。

「ContextWrapper型から非静的メソッドgetSharedPreferences(String、int)への静的参照を作成できません。」

4

2 に答える 2

4

おそらくこれを修正する最も簡単な方法は、コンテキストを 2 つのメソッドに渡し、次のようにすることです。

public static void saveToSP(Context context, String key, String value) {
    SharedPreferences saveData = context.getSharedPreferences(File, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = saveData.edit();
    editor.putString(key, value);
    editor.commit();
}
于 2012-10-17T03:06:10.537 に答える
0

Context.MODE_PRIVATE を使用します。アクティビティではないため、コンテキストから取得する必要があります。

于 2012-10-17T03:07:14.297 に答える