扣丁学堂——SharedPreferences

源码见本文

五大存储之SharedPreference

一、SharedPreference介绍
SharedPreference是我们常说的五大布局之一,我们之前的应用中也有简单的使用过,它非常适合保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口 令密码等。
二、SharedPreference使用方法
SharedPreference是一个接口因此我们在使用它的时候只能通过getSharedPreferences的方式去获得,如果要写入数据还需要获得他的编辑器Editor。
写数据:
1、getSharedPreferences();(参数:要存储的文件名,模式:三种,一般都是私有模式) 
2、editor=preference.edit();(Editor获得编辑器) 
3、editor.putString(“edittext”,”“);(以键值对的形式存储) 
4、editor.commit();(注意editor需要提交)
读数据:
1、getSharedPreferences(“pre”, MODE_PRIVATE);(文件名+MODE) 
2、String s=preference.getString(“”, “”);
模式介绍

Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE:  指定该SharedPreferences数据能被其他应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE:  指定该SharedPreferences数据能被其他应用程序读,写

三、课堂PPT


扣丁学堂——SharedPreferences_第1张图片

课程源码:完成保存数据功能:

public class MainActivity6 extends Activity {
    private SharedPreferences sp;
    private EditText editText_msg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main6);

        editText_msg = (EditText) findViewById(R.id.editText_msg);

        //获取当前程序的SharedPreferences对象
        sp =  getSharedPreferences("msg", Context.MODE_PRIVATE);
    }


    //还原数据,当用户回到本activity时还原数据
    @Override
    protected void onResume() {
        super.onResume();
        editText_msg.setText(sp.getString("msg",""));
    }

    //我们在该事件方法里存储数据
    //当用户打开其它Activity时,本activity会进入这个状态,所以在这个状态中保存存数据
    @Override
    protected void onPause() {
        super.onPause();

        String msg =   editText_msg.getText().toString();

        if(TextUtils.isEmpty(msg)){
            return;
        }

        SharedPreferences.Editor editor =  sp.edit();

// 如果test.xml文件不存在,则会在editor.commit()时创建  
// 如果没有调用commit()方法,写入的内容不会保存,而且不会创建文件
        editor.putString("msg",msg);
        editor.commit();
    }

}

你可能感兴趣的:(源码)