SharedPreferences的简介
SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。比较经典的使用方式例如用户输入框对过往登录账户的存储。
实现SharedPreferences存储的步骤如下:
1、根据Context获取SharedPreferences对象
2、利用edit()方法获取Editor对象。
3、通过Editor对象存储key-value键值对数据。
4、通过commit()方法提交数据
获取SharedPreferences的两种方式:
1、调用Context对象的getSharedPreferences()方法
2、调用Activity对象的getPreferences()方法
两种方式的区别:
调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.
SharedPreferences的四种操作模式:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
1 package com.example.sharedpref; 2 3 import android.app.Activity; 4 import android.content.SharedPreferences; 5 import android.content.SharedPreferences.Editor; 6 import android.os.Bundle; 7 import android.view.Menu; 8 import android.view.MenuItem; 9 import android.widget.Toast; 10 11 public class MainActivity extends Activity { 12 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_main); 17 18 //savetoSharedPreferences(); 19 20 readfromSharedPreferences(); 21 22 } 23 24 private void readfromSharedPreferences() { 25 // TODO Auto-generated method stub 26 27 //1)打开名为information的配置文件 28 SharedPreferences sharedPreferences = getSharedPreferences("infomation", 0); 29 //2)获取数据 30 boolean autostart= sharedPreferences.getBoolean("autostart", true) ; 31 float autoclose = sharedPreferences.getFloat("autoclose", 0); 32 String nickname = sharedPreferences.getString("nickname", ""); 33 34 Toast.makeText(this, nickname+","+autostart+","+autoclose, 1).show(); 35 } 36 37 private void savetoSharedPreferences() { 38 //1.获取sharedPreferences 39 SharedPreferences sp = getSharedPreferences("infomation", MODE_PRIVATE); 40 //2.获取editor对象 41 Editor editor = sp.edit(); 42 //3.使用editor进行写你需要的数据到sp里面 43 editor.putBoolean("autostart", false); 44 editor.putFloat("autoclose", 1000.0f); 45 editor.putString("nickname", "hellokitty"); 46 47 //4.将我们写入的数据保存到文件中。 48 editor.commit(); 49 } 50 }