Android 通过SharedPreferences保存失败

博客内容讲述了在Android应用中使用SharedPreferences保存数据时遇到的问题,即在onPause()和onResume()方法中分别调用sharedPreferences.edit()并提交修改,导致数据无法正确保存和读取。原因是两次调用edit()方法返回的是不同的编辑器实例,所以修改并未生效。解决办法是将edit()调用存储在变量中,然后在这个编辑器实例上进行所有修改并提交。
摘要由CSDN通过智能技术生成

源代码如下:

 

    protected  void onPause(){
        super.onPause();
        sharedPreferences.edit().putString("number", editText.getText().toString());
        sharedPreferences.edit().commit();
        Log.i("3", "write"+editText.getText().toString());
    }

    protected  void onResume(){
        super.onResume();
        editText.setText(sharedPreferences.getString("number", ""));
        Log.i("3", "read"+sharedPreferences.getString("number", ""));
    }

 

结果发现保存失败,再打开Activity时读不出来。

呵呵。

看了会才搞明白是因为:

sharedPreferences.edit()两次调用的返回值并不一样。修改了第一个,提交了第二个。当然就错了。

改为如下:

    protected  void onPause(){
        super.onPause();
        SharedPreferences.Editor editor = sharedPreferences.edit();
       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值