androidのSharedPreferences儲存集合物件
由於getSharedPreferences是依賴於上下文環境的,即為context,無論哪個類中,一定要通過activity類的context才能呼叫。
在類繼承了activity中使用時。 宣告一個 private Context context; 可以在oncreate()方法中,採用 context=this; 在類繼承了Fragment中時, 可以在oncreate()方法中,採用 getActivity(); getActivity().getSharedPreferences("dialmenu",....... ***********************************************************************************************************************接著看下,使用sharedpreference 如何儲存集合物件的
以上方法做的轉換,putHashMap() 是儲存物件的,,getHashMap()是獲取集合物件。 其他不做過多介紹,方便大家拿過來直接使用即可。public static String SceneList2String(HashMap<Integer, Boolean> hashmap) throws IOException { // 例項化一個ByteArrayOutputStream物件,用來裝載壓縮後的位元組檔案。 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // 然後將得到的字元資料裝載到ObjectOutputStream ObjectOutputStream objectOutputStream = new ObjectOutputStream( byteArrayOutputStream); // writeObject 方法負責寫入特定類的物件的狀態,以便相應的 readObject 方法可以還原它 objectOutputStream.writeObject(hashmap); // 最後,用Base64.encode將位元組檔案轉換成Base64編碼儲存在String中 String SceneListString = new String(Base64.encode( byteArrayOutputStream.toByteArray(), Base64.DEFAULT)); // 關閉objectOutputStream objectOutputStream.close(); return SceneListString; } @SuppressWarnings("unchecked") public static HashMap<Integer, Boolean> String2SceneList( String SceneListString) throws StreamCorruptedException, IOException, ClassNotFoundException { byte[] mobileBytes = Base64.decode(SceneListString.getBytes(), Base64.DEFAULT); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream( mobileBytes); ObjectInputStream objectInputStream = new ObjectInputStream( byteArrayInputStream); HashMap<Integer, Boolean> SceneList = (HashMap<Integer, Boolean>) objectInputStream .readObject(); objectInputStream.close(); return SceneList; } public static boolean putHashMap(Context context, String key, HashMap<Integer, Boolean> hashmap) { SharedPreferences settings = context.getSharedPreferences( PREFERENCE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); try { String liststr = SceneList2String(hashmap); editor.putString(key, liststr); } catch (IOException e) { e.printStackTrace(); } return editor.commit(); } public static HashMap<Integer, Boolean> getHashMap(Context context, String key) { SharedPreferences settings = context.getSharedPreferences( PREFERENCE_NAME, Context.MODE_PRIVATE); String liststr = settings.getString(key, ""); try { return String2SceneList(liststr); } catch (StreamCorruptedException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }
相關推薦
androidのSharedPreferences儲存集合物件
由於getSharedPreferences是依賴於上下文環境的,即為context,無論哪個類中,一定要通過activity類的context才能呼叫。 在類繼承了activity中使用時。 宣告一個 private Context context; 可以在oncreat
Android 中使用SharedPreferences儲存通用物件
由於最近開發的專案在趕進度實在是太忙了 ,也沒時間去更新部落格文章,今天寫寫關於在實際開發中使用 使用SharedPreferences 來儲存通用的物件的方法.對大對數開發這來說使用SharedPr
如何用android sharedpreferences儲存List集合
在Android開發過程中有時需要用到一些簡單的資料儲存。 在系統自帶的sharedpreferences中提供了一些列的資料型別,但有時候需要儲存一個List集合,系統則沒有現成的方法: 以儲存場景為例: public static String SceneLis
Android SharedPreferences儲存和讀取物件
SharedPreferences儲存和讀取物件 1.首先要序列化物件(下面是序列化實體類的例子,不方便貼出實體類所有的程式碼) public class LoginResult extends BaseResult implements Serializable{
Android SharedPreferences儲存詳解
什麼是SharedPreferences儲存 一種輕量級的資料儲存方式 類似於我們常用的ini檔案,用來儲存應用程式的一些屬 性設定、較簡單的引數設定。 儲存現場:儲存使用者所作的修改或者自定義引數設定, 當再次啟動程式後回覆上次退出時的狀態。 將NVP(Na
Android SharedPreferences儲存登入狀態
SharedPreferences是Android中一種資料持久化方法,採用鍵值對的方式儲存資料,這裡我以儲存登入狀態為例,簡述SharedPreferences的使用。首先,我們在使用者登入時,儲存SharedPreferences,向SharedPreferences.e
android SharedPreferences 儲存異常
最近遇到 SharedPreferences 儲存出現了異常 在此做下記錄; 最近專案使用了 SharedPreferences 儲存標誌位時 明明已經把 key 值已經remove掉 ,但是 當讀取時還是讀到了 最開始儲存的值; 最後發現 原來有一個
Android SharedPreferences儲存資料的使用方法
public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView
sharedpreference 如何儲存集合物件
public static String SceneList2String(HashMap<Integer, Boolean> hashmap) throws IOException { // 例項化一個ByteArrayOutputStream物件,用來裝載壓縮後的位
Android使用SharedPreferences儲存物件
1、將要儲存的物件進行序列化實現implements Serializable介面 2、給序列化介面配置ID serialVersionUID,如果沒有配置ID後面版本物件如做改變,將和以前版本衝突,ID要在工程中唯一,可以使用eclipse自動生成 3
android開發之SharedPreferences儲存物件
因為作者最近在做一個收藏的功能,涉及到了資料的儲存和讀取,又因為太懶,不想去使用ContentProvider,所以種種原因讓我選擇了使用SharedPreferences來儲存資料,但是儲存一條、兩條單獨的資料是可以的,但是要儲存物件!作者只能說咋搞!怕啥,一步一步的來嘛
Android使用Gson和SharedPreferences儲存物件
Android儲存檔案通常可以用SharedPreferences、SQLite、Content Provider和File,但是SharedPreferences只支援簡單的key-value, 通常,如果要儲存一個物件,可以先把它序列化,然後用輸入輸出流存進file檔案
android EOFException異常解決辦法 (SharedPreferences儲存物件)
SharePreferences可以儲存String 但是不能儲存物件 這不符合面向物件。 為此可以通過序列化和反序列化將Serializable物件和字串相互轉化 所以可以將Serizlizable物件轉化為字串儲存到SharedPreferences中 Shar
android應用儲存使用者資訊,map集合與使用者物件儲存
場景描述:使用者在登入之後,伺服器返回使用者的基本資訊,比如使用者的ID,Token等資訊,這時,我們需要將使用者的資訊進行儲存,以方便在其他頁面進行呼叫。使用SharedPrefrences對整個使用者物件進行儲存。 User 屬性nickName、userHead、i
Android中對集合中的物件進行排序
最近需要一個對圖片物件進行排序的功能。 思路: 1、新建一個類實現Comparator<?>,這個類是實現比較的關鍵類,一般做比較的型別為int或String。 public class OrderSortUtil implements Comparator<
Android學習之SharedPreferences儲存小練習
SharedPreferences是Android平臺上一個輕量級的儲存類,用來儲存應用的一些常用配置,比如Activity狀態,Activity暫停時,將此activity的狀態儲存到SharedPereferences中;當Activity過載,系統回撥方法onSav
Android SharedPreferences工具類 ,實現List/Map的儲存讀取
最近因為需要將List集合和Map集合的資料儲存到SharedPreferences中,所以對以前自己封裝的SharedPreferencesUtil進行了修改,在原有的儲存讀Integer,String,Float,Long,Boolean,Object的基礎上增加了儲存讀取List<Obj
Android基礎(二)資料儲存1.SharedPreferences儲存
SharedPreferences經常用來儲存一些預設歡迎語,使用者登入名和密碼等簡單資訊,一般用於儲存量小的資訊 exampleHelper.java import android.content.Context; import android.content
Android中的資料儲存一(檔案儲存、SharedPreferences儲存)
一.檔案儲存 檔案儲存不對儲存的內容進行處理,適合用於儲存一些簡單的文字資料或二進位制資料。如果要儲存較為複雜的文字資料,就要定義一套自己的格式規範。 1.將資料儲存到檔案中 Context類中有一個 openFileOutput(String name, int mo
[Android]SharedPreferences資料儲存
應用 Android開發中,需要將少量簡單型別的資料儲存在本地,比如幾個字串,一般選擇使用SharedPreferences來儲存。 SharedPreferences:一個輕量級的儲存類,特別適合用於儲存軟體配置引數。使用xml檔案存放資料,檔案存放在/data/data/<pa