如何在Android应用程序中实现sharedpreferences

时间:2015-04-03 18:32:57

标签: android sharedpreferences

我试图在我的Android应用程序中使用共享首选项来本地保存高分。我正在关注此链接http://developer.android.com/guide/topics/data/data-storage.html#filesInternal的指南,但我不确定一个小细节。该指南说要使用此public class Calc extends Activity { public static final String PREFS_NAME = "MyPrefsFile";

我想知道我是否会创建一个新的活动来使用它,或者我是否会把它放在我的主要活动中。抱歉这个愚蠢的问题,但我真的被困住了,并且不知道如何继续解决这个问题。感谢阅读,非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

使用共享首选项(写入内部应用程序目录的xml文件)时,需要指定此文件(使用默认共享首选项时除外)。您可以随意命名,并在任何地方声明名称:如果它将被许多类(活动,服务等)访问,您可以创建自己的类,并在上下文中传递你需要的任何操作。如:

public class SharedPreferencesManager {

  public static final String PREFERENCES_NAME = "awesomePrefs";

  private static final String PREFERENCES_KEY_HIGHSCORE_LIST = "hscore";

  public static void saveHighScoreList(Context c, ArrayList<HighScore> scores) {
    SharedPreferences sp = c.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sp.edit();
    edit.putString(PREFERENCES_KEY_HIGHSCORE_LIST, serializeHighScores(scores));
    // save it
    edit.apply();
  }

  private static String serializeHighScores(ArrayList<HighScore> scores) {
    return // some form of concatenation
  }

}

答案 1 :(得分:0)

这样做,

 public static void savePreference(Context context,String name, String value)
    {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = prefs.edit();
        if (name != null && value != null)
        {
            editor.putString(name, value);
        }
        editor.commit();

    }

    public static String loadPreference(Context context,String name)
    {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        return prefs.getString(name, null);
    }