代码改变世界

SharedPredPreferences储存

2017-07-14 10:53  烈'焰  阅读(184)  评论(0编辑  收藏  举报

1.SharedPredPreferences是使用键值对的方法来存储数据的,保存数据时要添加一个键,读取时候可以通过键来找到。

同时他还支持多种不同数据类型储存名,你以什么类型存入就以什么类型读取

2.要是想使用它就要获取它的对象,它提供了3种方式用来的到它的对象。

①在Context类中得到getSharedPredPreferences()方法

此时的方法接收两个参数,第一个用于指定文件名,如果指定的文件不存在就会创建,第二个用于指定操作模式,目前只能选择MODE_PRIVATE模式,它是默认的模式,和传入0相同效果。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       Button seave= (Button) findViewById(R.id.seave);
        seave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferences.Editor editor = getSharedPreferences("data",0).edit();
                //添加内容的类型
                editor.putString("name","Tom");//字符串
                editor.putInt("Phone",110);//int类型
                editor.putBoolean("married",false);//boolean类型
                editor.apply();//调用方法应用数据
            }
        });
    }

 

读取你所存入的文件内容

首先通过getSharedPreferences()得到SharedPreferences对象,分别调用对应的属性根据键值得到内容,其中第一个参数为键值,第二个为默认值,找不到就会返回默认值

  read.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferences read = getSharedPreferences("data",0);
             String name= read.getString("name","");
                String name2= read.getString("name2","没有");
              int phone=  read.getInt("Phone",0);
                boolean married = read.getBoolean("married",true);

                Log.d("a","name is "+name);
                Log.d("a","name2 is "+name2);
                Log.d("a","phone is "+phone);
                Log.d("a","married is "+married);
            }
        });

 

 

②,Activity类中的getSharedPredPreferences()方法,他和Context类中相似,不过它只能接收一个参数。使用这个方法将自动将当前的活动名作为SharedPreferences的文件名

③。PreferenceManager类中的getDefaultSharedPreferences()方法

这是一个静态方法,它接收一个Context参数,并且使用当前包名的前缀作为SharedPreferences文件名,只要的到SharedPreferences就可以向其添加数据了

 1 //定义
 2     private SharedPreferences pref;
 3     private SharedPreferences.Editor editor;
 4 
 5 //可以理解为设置保存路径和文件名
 6  pref = PreferenceManager.getDefaultSharedPreferences(this);
 7 
 8 //获取SharedPreferences 对象
 9   editor = pref.edit();
10 
11 //添加数据
13               //给输入的值设置键值,保存起来
14            editor.putBoolean("remember_pwd",true);
15            editor.putString("account",admin);
16            editor.putString("pwd",pwd);