Android执行SharedPreferences.Editor.remove报NullPointerException如何解决?
故障原因
你的AnaEkranActivity中全局声明的SharedPreferences.Editor类型变量editor没有被正确初始化,是空对象,调用remove方法时触发空指针闪退。
你在onCreate里写的代码是:
sp = getSharedPreferences("Bilgiler",MODE_PRIVATE); sp.edit();
这里调用sp.edit()生成了Editor实例,但没有赋值给你声明的editor变量,导致editor一直为null。
修复方法
把sp.edit();修改为:
editor = sp.edit();
即可解决闪退问题。
可选优化
跳转回MainActivity后可以调用finish()销毁当前的AnaEkranActivity,避免返回栈残留冗余页面,修改后的点击事件代码如下:
buttonCikisYap.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { editor.remove("username"); editor.remove("password"); editor.commit(); startActivity(new Intent(AnaEkranActivity.this,MainActivity.class)); finish(); } });
内容的提问来源于stack exchange,提问作者user13088719
相关产品推荐
相关产品推荐

