首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android SharedPreferences 鍵值不持久化:固定文件名與編輯器複用

     編輯:程式設計綜合問答

錯誤代碼

String punkte = points; // 變量作為文件名,每次不同
SharedPreferences load = getSharedPreferences(punkte, 0); // 導致每次讀寫不同文件

修正

private static final String PREFS_NAME = "game_prefs";

@Override
protected void onCreate(Bundle savedInstanceState) {
    SharedPreferences sp = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
    String points = sp.getString("punkte", "0");
    textView.setText(points);
}

public void mehrPunkte() {
    SharedPreferences sp = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
    String points = sp.getString("punkte", "0");
    textView.setText(points);
    sp.edit().putString("punkte", "3").apply();
}

關鍵點

  • SharedPreferences 文件名必須固定(常量),否則每次操作不同文件。
  • 模式常量用 MODE_PRIVATE 而非數字 0,語義明確。
  • 編輯器鏈式調用 edit().putXxx().apply(),避免多次 edit() 丟失修改。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved