zoukankan      html  css  js  c++  java
  • android学习---Shared Preferences

    1.使用Shared Preferences存储数据和读取数据

      Shared Preferences是Android系统提供的一个轻量级的存储类,主要用于保存一些配置信息,比如窗口状态(大小、亮度等)。

      Shared Preferences使用键值对的形式来存储数据,可以对常用数据类型boolean、float、int、long以及String进行保存。保存的数据以xml文件的形式存储在/data/data/<包名>/shared_prefs目录下。

    1.1使用Shared Preferences存储数据

      使用Shared Preferences存储数据可以通过以下4个步骤来实现:(1)使用Context类提供的getSharedPreferences()方法,获取SharedPreferences对象。getSharedPreferences()方法的原型如下:

      public abstract SharedPreferences getSharedPreferences(String name, int mode);

      其中,参数name表示存储数据的文件名。有一点需要注意的是,此处只是定义了该文件名,该文件实际上并没有被创建,该文件只有当创建了SharedPreferences.Edit对象并使用该对象的commit()方法提交数据时,才会被创建。

      参数mode用于指定文件的操作模式,其可选值有Context.MODE_APPEND(内容追加模式)、Context.MODE_PRIVATE(默认操作模式)、Context.MODE_WORLD_READABLE(可读模式)、Context.MODE_WORLD_WRITEABLE(可写模式)四种。

      (2)使用SharedPreferences对象的edit()方法创建SharedPreferences.Edit对象。使用Shared Preferences方式存储数据时需要借助SharedPreferences.Edit类提供的方法来添加数据。SharedPreferences.Edit类提供的方法如图1所示。

    图1 SharedPreferences.Edit类提供的方法

      可以看出,SharedPreferences.Edit类提供了以键值对的形式存储boolean、float、int、long以及String数据类型的数据的方法。

      (3)使用SharedPreferences.Edit对象存储数据。

      (4)使用commit()方法提交数据。

    MySharedPreferences.java

    package com.leaf.android;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    
    public class MySharedPreferences {
    
        private Context context;
    
        public MySharedPreferences(Context context) {
            this.context = context;
        }
    
        public boolean saveMessage(String name, String pswd) {
            boolean flag = false;
            SharedPreferences sharedPreferences = context.getSharedPreferences(
                    "userinfo", Context.MODE_PRIVATE);
            // 对数据进行编辑
            SharedPreferences.Editor editor = sharedPreferences.edit();
            editor.putString("name", name);
            editor.putString("pswd", pswd);
            flag = editor.commit();// 将数据持久化到存储介质中
            return flag;
        }
    
        public Map<String, Object> getMessage() {
            Map<String, Object> map = new HashMap<String, Object>();// Map对象,用来存储读取到的数据
            SharedPreferences sharedPreferences = context.getSharedPreferences(
                    "userinfo", Context.MODE_PRIVATE);
            String name = sharedPreferences.getString("name", " ");// 读取SharedPreferences对象中的数据
            String pswd = sharedPreferences.getString("pswd", " ");
            map.put("name", name);// 将读取到的数据存入Map对象
            map.put("pswd", pswd);
            return map;
    
        }
    }

    MyTest.java

    package com.leaf.android;
    
    import java.util.Map;
    
    import android.content.Context;
    import android.test.AndroidTestCase;
    import android.util.Log;
    
    public class MyTest extends AndroidTestCase {
    
        private String TAG = "MyTest";
    
        public MyTest() {
            // TODO Auto-generated constructor stub
        }
    
        public void save() {
            Context context = getContext();
            MySharedPreferences mySharedPreferences = new MySharedPreferences(
                    context);
            boolean flag = mySharedPreferences.saveMessage("admin", "123");
            Log.i(TAG, "-->>" + flag);
    
        }
    
        public void find() {
            Context context = getContext();
            MySharedPreferences mySharedPreferences = new MySharedPreferences(
                    context);
            Map<String, Object> map = mySharedPreferences.getMessage();
            Log.i(TAG, "-->>" + map.toString());
    
        }
    
    }

    在AndroidMainfest.xml文件中添加

        <instrumentation
            android:name="android.test.InstrumentationTestRunner"
            android:targetPackage="com.leaf.android" >
        </instrumentation>
            <uses-library android:name="android.test.runner" >
            </uses-library>

    参考文献:http://www.cnblogs.com/menlsh/archive/2013/04/07/3006510.html

  • 相关阅读:
    good
    C# 调用控制台程序,并获取输出写入文件
    正则基础之——环视(Lookaround)
    C# 正则表达式及常用正则表达式
    c# winform 关于DataGridView的一些操作(很全,绝对够用)
    [bzoj4542][Hnoi2016]大数——同余+莫队
    [bzoj4010][HNOI2015]菜肴制作——拓扑排序
    [bzoj5285][Hnoi2018]寻宝游戏——思维+排序
    NOIP2018游记&&总结
    [bzoj5289][Hnoi2018]排列——贪心+堆
  • 原文地址:https://www.cnblogs.com/lea-fu/p/3310819.html
Copyright © 2011-2022 走看看