簡體   English   中英

按鈕OnClick中的SharedPreferences上的NullPointerException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM