2015-04-03 63 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); 
    } 
相關問題