2015-04-03 72 views
0

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

我想知道如果我会创建一个新的活动来使用这个,或者如果我会把这个在我的主要活动。对于愚蠢的问题抱歉,但我真的陷入困境,不知道如何继续解决问题。感谢您的阅读和任何帮助,非常感谢。

回答

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 
    } 

} 
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); 
    } 
相关问题