一、概述
SharedPreferences(简称SP)是Android中很常用的数据存储方式,SP采用key-value(键值对)形式,主要用于轻量级的数据存储,尤其适合保存应用的配置参数,但不建议使用SP来存储大规模的数据,可能会降低性能。
SP采用xml文件格式来保存数据,改文件所在目录位于/data/data/shared_prefs/。
二、使用
1.得到SharedPreferences对象
private SharedPreferences mSharedPreferences; private final static String PREFRENCE_FILE_KEY = "com.zhangmiao.shared_preferences"; mSharedPreferences = getSharedPreferences(PREFRENCE_FILE_KEY, MODE_PRIVATE);
2.添加数据
final SharedPreferences.Editor editor = mSharedPreferences.edit(); editor.putInt("id",1); editor.putString("name","小熊"); editor.putInt("age",24); editor.commit();
3.获取数据
TextView textView = (TextView)findViewById(R.id.text); String message = "id = " + mSharedPreferences.getInt("id",-1) + ",name = " + mSharedPreferences.getString("name","无") + ",age = " + mSharedPreferences.getInt("age",-1)+"。"; textView.setText(message);
4.查看生成的sharedpreferences.xml文件
(具体操作:真机连接电脑,eclipse项目右键运行程序,程序运行起来之后。打开cmd,执行如下命令)
我使用的是adb命令查看的文件,命令如下:(系统是window10)
adb shell
run-as com.zhangmiao.myapplication(应用包名)【在清单文件中查看包名】
cd shared_prefs(进入到这个目录)
ls(查看xml文件的名称)
如代码中定义为:public final static String CONN_M = "com.my.CONN_M";
cat com.my.CONN_M.xml(查看xml文件)
********************************************************************
context.getSharedPreferences(string name,int mode) 空指针异常,已解决。
Java Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
1、首先,在程序启动之后的主界面,初始化
public static int idGet = 0;//【全局变量】*********************初始化idGet SharedPreferences preferences; 2、指定xml名称
public final static String SELECTED_ID = "com.my.SELECTED_ID";//指定xml名称
3、单独写一个初始化方法 //**************************************初始化SharedPreferences方法 private void INIId() { preferences = this.getSharedPreferences(com.Conn.SELECTED_ID, Context.MODE_PRIVATE); //前面加this【实例化SharedPreferences操作】 idGet = preferences.getInt(com.Conn.SELECTED_ID, 0); } 3、在oncreate中,调用INIId()来初始化SharedPreferences,得到数据 4、添加一个按钮监听事件,每点击一次按钮,重新获取一次SharedPreferences,重新为idGet赋值一次。 5、其余地方如想使用这个SharedPreferences中的idGet,直接调用主界面的SharedPreferences以及idGet即可。 【或者可以再次使用INIId()方法,进行重新获取数据】
|