我一直在鍵盤上敲打我的頭幾個小時。我想在我的應用程序中爲單獨的統計活動存儲遞增的整數。我正在嘗試使用共享首選項來實現此目的。然而,在我最近的嘗試中,這是我得到的最遠的一次,程序拋出一個異常。帶SharedPreferences的空對象引用
我的代碼:
public class LootChest extends AppCompatActivity {
public static final String prefName = "prefsFile";
SharedPreferences settings = getApplicationContext().getSharedPreferences(prefName, 0); //line 25
int rollCountS = settings.getInt("Roll Count", 0);
int rollCount = 0; //to be incremented
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loot_chest);
}
public void openChest(View v) {
SharedPreferences.Editor editor = settings.edit();
editor.putInt("Roll Count", rollCount);
rollCount = rollCountS + 1;
例外:
Caused by: java.lang.NullPointerException:
Attempt to invoke virtual method
'android.content.SharedPreferences android.content.Context
.getSharedPreferences(java.lang.String, int)'
on a null object reference at android.content.ContextWrapper
.getSharedPreferences(ContextWrapper.java:171)
at net.zingrook.mobiloot.LootChest.<init>(LootChest.java:25)
我已經在實施這項閱讀幾十個線程,看着Android的文檔和我的想法。感謝您的任何幫助。
點我不是一個Android程序員,但如果問題是上下文包裝是在類實例化空,它是可能的設置應該在調用onCreate之後? – KevinO