android學習---Shared Preferences

1.使用Shared Preferences存儲數據和讀取數據html

  Shared Preferences是Android系統提供的一個輕量級的存儲類,主要用於保存一些配置信息,好比窗口狀態(大小、亮度等)。java

  Shared Preferences使用鍵值對的形式來存儲數據,能夠對經常使用數據類型boolean、float、int、long以及String進行保存。保存的數據以xml文件的形式存儲在/data/data/<包名>/shared_prefs目錄下。android

1.1使用Shared Preferences存儲數據this

  使用Shared Preferences存儲數據能夠經過如下4個步驟來實現:(1)使用Context類提供的getSharedPreferences()方法,獲取SharedPreferences對象。getSharedPreferences()方法的原型以下:spa

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

  其中,參數name表示存儲數據的文件名。有一點須要注意的是,此處只是定義了該文件名,該文件實際上並無被建立,該文件只有當建立了SharedPreferences.Edit對象並使用該對象的commit()方法提交數據時,纔會被建立。xml

  參數mode用於指定文件的操做模式,其可選值有Context.MODE_APPEND(內容追加模式)、Context.MODE_PRIVATE(默認操做模式)、Context.MODE_WORLD_READABLE(可讀模式)、Context.MODE_WORLD_WRITEABLE(可寫模式)四種。htm

  (2)使用SharedPreferences對象的edit()方法建立SharedPreferences.Edit對象。使用Shared Preferences方式存儲數據時須要藉助SharedPreferences.Edit類提供的方法來添加數據。SharedPreferences.Edit類提供的方法如圖1所示。對象

圖1 SharedPreferences.Edit類提供的方法blog

  能夠看出,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

相關文章
相關標籤/搜索