保存數(shù)據(jù):
第一種方法
第一步?//定義sp變量
private static final String? Temp_Sms="Temp_Sms";
第二步 保存數(shù)據(jù)在onStop方法處理
protected void onStop(){
super.onStop();
? ? SharedPreferences.Editor editor=getSharedPreferences(Temp_Sms,MODE_PRIVATE).edit();
? ? ? ? editor.putString("sms_content",editTextMsg.getText().toString());
? ? ? ? editor.apply();
}
第三步 取值調(diào)用展示
SharedPreferences sp = getSharedPreferences(Temp_Sms,MODE_PRIVATE);
String content=sp.getString("sms_content", "");
editTextMsg.setText(content);
第二種方法
/**
* 用戶數(shù)據(jù)操作類
*/
public class UserDao {
private static StringUserDaoTable ="Jason";? //這里命名中間隨意
? private static StringUserInfoObject ="UserInfoObject";
? /**
* 獲得用戶名
*
? ? * @param context
? ? * @return
? ? */
? public static StringgetUserName(Context context) {
SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
? ? ? String username = preferences.getString("UserName", "");
? ? ? return username;
? }
/**
* 獲得密碼
*
? ? * @param context
? ? * @return
? ? */
? public static StringgetPassWord(Context context) {
SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
? ? ? String password = preferences.getString("PassWord", "");
? ? ? return password;
? }
/**
* 是否記住密碼
*
? ? * @param context
? ? * @return
? ? */
? public static boolean getRememberPassWord(Context context) {
SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
? ? ? boolean isRemember = preferences.getBoolean("RememberPassWord", false);
? ? ? return isRemember;
? }
/**
* 保存是否保存密碼
*
? ? * @param context
? ? * @param username
? ? * @param password
? ? */
? public static void saveRememberPassWord(Context context, boolean isRemember) {
SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
? ? ? Editor editor = preferences.edit();
? ? ? editor.putBoolean("RememberPassWord", isRemember);
? ? ? editor.commit();
? }
/**
* 保存密碼
*
? ? * @param context
? ? * @param username
? ? * @param password
? ? */
? public static void saveUserPassWord(Context context, String password) {
SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
? ? ? Editor editor = preferences.edit();
? ? ? editor.putString("PassWord", password);
? ? ? editor.commit();
? }
/**
* 保存用戶名密碼
*
? ? * @param context
? ? * @param username
? ? * @param password
? ? */
? public static void saveUserNamePassWord(Context context, String username, String password) {
SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
? ? ? Editor editor = preferences.edit();
? ? ? editor.putString("UserName", username);
? ? ? editor.putString("PassWord", password);
? ? ? editor.commit();
? }
// /**
//? * 保存用戶信息
//? *
//? * @param context
//? * @param userinfo
//? */
// public static void saveUserInfo(Context context, String userinfo) {
//? ? SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
//? ? Editor editor = preferences.edit();
//? ? editor.putString("UserInfo", userinfo);
//? ? editor.commit();
// }
? /**
* 保存用戶信息對象
*
? ? * @param context
? ? * @param userinfo
? ? */
? public static void saveUserInfo(Context context, LoginUser userinfo) {
PreferencesService service =new PreferencesService(context);
? ? ? service.saveObject(UserInfoObject, userinfo);
? }
/**
* 獲取用戶信息對象
*
? ? * @param context
? ? * @return
? ? */
? public static LoginUsergetUserInfoModel(Context context) {
LoginUser model =null;
? ? ? PreferencesService service =new PreferencesService(context);
? ? ? model = (LoginUser) service.deSerialization(UserInfoObject);
? ? ? return model;
? }
/**
* 獲取用戶信息
*
? ? * @param context
? ? * @return
? ? */
? public static StringgetUserInfo(Context context) {
SharedPreferences preferences = context.getSharedPreferences(UserDaoTable, Activity.MODE_PRIVATE);
? ? ? return preferences.getString("UserInfo", "");
? }
}
PreferencesService文件在下面
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.StreamCorruptedException;
import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Base64;
/**
* 輕量級保存工具
*/
public class PreferencesService {
private static SharedPreferencespreferences;
? /** 構(gòu)造器(無參數(shù)) */
? public PreferencesService() {
}
/** 構(gòu)造器(有參數(shù)) */
? public PreferencesService(Context context) {
if (null ==preferences) {
preferences = android.preference.PreferenceManager.getDefaultSharedPreferences(context);
? ? ? }
}
/** 保存字段 */
? public void save(String key, String value) {
Editor edit =preferences.edit();
? ? ? /** 數(shù)據(jù)是放在內(nèi)存中的 */
? ? ? edit.putString(key, value);
? ? ? /** 提交方法怜珍,把內(nèi)存中的數(shù)據(jù)提交到文件中 */
? ? ? edit.commit();
? }
/** 根據(jù)key值獲取value值 */
? public StringgetValue(String key, String defaltValue) {
String object =preferences.getString(key, defaltValue);
? ? ? return object;
? }
/** 保存字段 */
? public void save(String key, Boolean value) {
Editor edit =preferences.edit();
? ? ? /** 數(shù)據(jù)是放在內(nèi)存中的 */
? ? ? edit.putBoolean(key, value);
? ? ? /** 提交方法读串,把內(nèi)存中的數(shù)據(jù)提交到文件中 */
? ? ? edit.commit();
? }
/** 根據(jù)key值獲取value值 */
? public boolean getValue(String key) {
boolean object =preferences.getBoolean(key, false);
? ? ? return object;
? }
/** 獲取保存的字段 */
? public MapgetPreferences(String... param) {
Map map =new HashMap();
? ? ? for (int i =0; i < param.length; i++) {
map.put(param[i], preferences.getString(param[i], ""));
? ? ? }
return map;
? }
/** 將要保存的hashmap集合轉(zhuǎn)化成字符串 */
? private StringSceneList2String(HashMap hashmap)throws IOException {
/** 實例化一個ByteArrayOutputStream對象攒霹,用來裝載壓縮后的字節(jié)文件。 */
? ? ? ByteArrayOutputStream byteArrayOutputStream =new ByteArrayOutputStream();
? ? ? /** 然后將得到的字符數(shù)據(jù)裝載到ObjectOutputStream */
? ? ? ObjectOutputStream objectOutputStream =new ObjectOutputStream(byteArrayOutputStream);
? ? ? /** writeObject 方法負(fù)責(zé)寫入特定類的對象的狀態(tài)却盘,以便相應(yīng)的 readObject 方法可以還原它 */
? ? ? objectOutputStream.writeObject(hashmap);
? ? ? /** 最后,用Base64.encode將字節(jié)文件轉(zhuǎn)換成Base64編碼保存在String中 */
? ? ? String SceneListString =new String(Base64.encode(byteArrayOutputStream.toByteArray(), Base64.DEFAULT));
? ? ? /** 關(guān)閉objectOutputStream */
? ? ? objectOutputStream.close();
? ? ? return SceneListString;
? }
/** 將字符串轉(zhuǎn)化成hashmap集合 */
? private HashMapString2SceneList(String SceneListString)throws StreamCorruptedException, IOException, ClassNotFoundException {
byte[] mobileBytes = Base64.decode(SceneListString.getBytes(), Base64.DEFAULT);
? ? ? ByteArrayInputStream byteArrayInputStream =new ByteArrayInputStream(mobileBytes);
? ? ? ObjectInputStream objectInputStream =new ObjectInputStream(byteArrayInputStream);
? ? ? @SuppressWarnings("unchecked")
HashMap SceneList = (HashMap) objectInputStream.readObject();
? ? ? objectInputStream.close();
? ? ? return SceneList;
? }
/** 存儲集合對象 */
? public boolean putHashMap(String key, HashMap hashmap) {
Editor editor =preferences.edit();
? ? ? try {
String liststr = SceneList2String(hashmap);
? ? ? ? editor.putString(key, liststr);
? ? ? }catch (IOException e) {
return false;
? ? ? }
return editor.commit();
? }
/** 獲取集合對象 */
? public HashMapgetHashMap(String key) {
String liststr =preferences.getString(key, "");
? ? ? try {
return String2SceneList(liststr);
? ? ? }catch (Exception e) {
return null;
? ? ? }
}
/** 反序列化對象(獲取序列化對象) */
? public ObjectdeSerialization(String key) {
String seria =preferences.getString(key, null);
? ? ? Object object;
? ? ? try {
String redStr = java.net.URLDecoder.decode(seria, "UTF-8");
? ? ? ? ByteArrayInputStream byteArrayInputStream =new ByteArrayInputStream(redStr.getBytes("ISO-8859-1"));
? ? ? ? ObjectInputStream objectInputStream =new ObjectInputStream(byteArrayInputStream);
? ? ? ? object = objectInputStream.readObject();
? ? ? ? objectInputStream.close();
? ? ? ? byteArrayInputStream.close();
? ? ? }catch (Exception e) {
return null;
? ? ? }
return object;
? }
/** 序列化對象 */
? private Stringserialize(Object object) {
ByteArrayOutputStream byteArrayOutputStream =new ByteArrayOutputStream();
? ? ? ObjectOutputStream objectOutputStream;
? ? ? String serStr;
? ? ? try {
objectOutputStream =new ObjectOutputStream(byteArrayOutputStream);
? ? ? ? objectOutputStream.writeObject(object);
? ? ? ? serStr = byteArrayOutputStream.toString("ISO-8859-1");
? ? ? ? serStr = java.net.URLEncoder.encode(serStr, "UTF-8");
? ? ? ? objectOutputStream.close();
? ? ? ? byteArrayOutputStream.close();
? ? ? }catch (IOException e) {
return null;
? ? ? }
return serStr;
? }
/** 保存序列化對象 */
? public boolean saveObject(String key, Object object) {
String strObject = serialize(object);
? ? ? Editor edit =preferences.edit();
? ? ? edit.putString(key, strObject);
? ? ? return edit.commit();
? }
}