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