啥时候才能不是项目需要就得去百度而是我自己就有思路开始写代码哇,,
直接上代码:
package com.example.ex50videotest;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
/**
* @author ShirleyLuo
* @date 2018年10月9日 下午3:02:32
*/
public class SharedPreferenceDemo extends Activity {
/**
* 1:SharedPreferences的数据是存储到哪里的?一定是xml文件吗?是的。
* 2:据说如果是用早fragment里面的SharedPreferences的话需要放在onAttach(Activity
* activity)里面进行SharedPreferences 的初始化,否则会报空指针 即 getActivity()会可能返回null
* !但是自己没有试过的
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* 存入数据
*/
// 获取SharedPreferences对象,参数一:用于保存SharedPreferences的数据资源文件名称;参数二:访问这个文件的权限
SharedPreferences sp = getSharedPreferences("test",
Context.MODE_PRIVATE);
// 让SharedPreferences处于被编辑状态
SharedPreferences.Editor ed = sp.edit();
// 存放数据,只能存放Java的基本类型的数据
ed.putString("str", "ppx");// key-value形式,因为SharedPreferences其实是存储在Map里面的
ed.putInt("data", 789);
// 完成提交
ed.commit();
/**
* 读取数据
*/
// 首先还是要获取到SharedPreferences
SharedPreferences sp2 = getSharedPreferences("test",
Context.MODE_PRIVATE);
// 获取指定key的值,如果没有就设为默认值
String str = sp2.getString("str", "默认值");
int data = sp2.getInt("data", 0);
// 移除指定的数据sp:如果是在移除了数据之后再去打印数据的话要在提交之后再获取一次,要不然打印的就是之前的数据哦。
Editor ed2 = sp2.edit();
ed2.remove("data");
// 清空数据
ed2.clear();
// 完成提交
ed2.commit();
int d2 = sp2.getInt("data", 0);
String str2 = sp2.getString("str", "默认值");
Log.d("233", "233" + str2 + "---->>>" + d2);
}
}