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);