SharedPreferences调用edit()方法即可获取它对应的Edit()对象。Editor()提供如下方法来向SharedPreferences
写入数据:
一:SharedPreferences.Editor clear() :清空shareSharedPreferences里面的所有数据
二:SharedPreferences.Editor putxxx(String key,xxx value):向SharedPreferences存入指定的key对应的数据
其中xxx可以是int,String等各种数据类型
三:SharedPreferences.Editor remov(String key):删除sharepreference里面指定key对应的数据项
四:Editor.commit():调用该方法提交修改
代码如下:(ps:read和write两个按钮,在xml布局文件里面定义)
public class MainActivity extends Activity {
SharedPreferences preferences;
SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
//返回一个SharedPreferences,第一个参数:创建名为createFile的文件,如果不存在成为就自动创建
preferences = getSharedPreferences("createFile", MODE_PRIVATE);//MODE_PRIVATE指定改sharedpreference数据只能被本应用读写
editor = preferences.edit();
Button read = (Button)findViewById(R.id.read);
Button write = (Button)findViewById(R.id.write);
//SharedPreferences读取数据操作
read.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String time = preferences.getString("time",null);//返回名为time的preferen,如果该preference不存在则返回默认值
int random = preferences.getInt("random", 0);
String result = time == null ? "暂时还未写入数据" : "写入的时间为:"
+time+"上次生成的随机数为: "+random;
Toast.makeText(MainActivity.this,result,1000).show();
}
});
//SharedPreferences写入数据操作
write.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SimpleDateFormat adf = new SimpleDateFormat("yyyy年mm月dd日"+"hh:mm:ss");//获取当前时间
editor.putString("time",adf.format(new Date()));//存入当前时间
editor.putInt("random", (int) (Math.random() * 101));//存入一个随机数
editor.commit();//提交所有保存的数据
}
});
}
}
SharedPreferences的数据总是保存在/data/data/<包名>/shared_prefs目录下,总是以xml文件的形式保存写入的内容
扩展:可以用SharedPreferences来记录程序启动的次数,当用户点一次启动应用程序时,系统创建一个SharedPreferences来记录使用次数,以后用户每启动一次,然后使用次数就甲一。可以用于判断程序是否是第一次启动,如果是
第一次启动那么就展示引导页,否则直接进入主页
代码如下:
SharedPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
preferences = getSharedPreferences("count",MODE_PRIVATE);
//用count来记录程序启动的次数
int count = preferences.getInt("count",0);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("count",count++);
editor.commit();
}