![](/img/trans.png)
[英]Android app NullPointerException on SharedPreferences Button
[英]NullPointerException on SharedPreferences in Button OnClick
我正在嘗試更新一個共享的首選項,即用戶是否已選中一個框以不再顯示歡迎屏幕。 我通過onClick偵聽器訪問共享的首選項以獲取按鈕。 我收到了空指針異常,我不知道如何解決它?
這是我的代碼。
public class WelcomeScreenActivity extends Activity {
SharedPreferences mPrefs;
final String welcomeScreenShownPref = "welcomeScreenShown";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcomescreen);
final Button button = (Button) findViewById(R.id.welcomecontinue);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) findViewById(R.id.welcomecheckbox);
if(cb.isChecked()){
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(welcomeScreenShownPref, true);
editor.commit(); // Very important to save the preference
Intent intent = new Intent(WelcomeScreenActivity.this, MainActivity.class);
startActivity(intent);
} else if(!cb.isChecked()){
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(welcomeScreenShownPref, false);
editor.commit(); // Very important to save the preference
Intent intent = new Intent(WelcomeScreenActivity.this, MainActivity.class);
startActivity(intent);
}
}
});
}
}
誰能對此有所啟發?
SharedPreferences mPrefs;
您從未初始化過它。 雖然您正在使用
mPrefs.edit();
做類似的事情:
SharedPreferences mPrefs = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
在使用它之前。
您永遠不會將mPrefs
設置為任何調用mPrefs.edit()
東西mPrefs.edit()
將拋出NullPointerException
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.