編輯:關於android開發
SharedPreferences是Android中最容易理解的數據存儲技術,實際上SharedPreferences處理的就是一個key-value(鍵值對)SharedPreferences常用來存儲一些輕量級的數據。
1、使用SharedPreferences保存數據方法如下:
//實例化SharedPreferences對象(第一步) SharedPreferences mySharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); //實例化SharedPreferences.Editor對象(第二步) SharedPreferences.Editor editor = mySharedPreferences.edit(); //用putString的方法保存數據 editor.putString("name", "Karl"); editor.putString("habit", "sleep"); //提交當前數據 editor.commit(); //使用toast信息提示框提示成功寫入數據 Toast.makeText(this, "數據成功寫入SharedPreferences!" , Toast.LENGTH_LONG).show();2、使用SharedPreferences讀取數據方法如下:
//同樣,在讀取SharedPreferences數據前要實例化出一個SharedPreferences對象 SharedPreferencessharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); // 使用getString方法獲得value,注意第2個參數是value的默認值 String name =sharedPreferences.getString("name", ""); String habit =sharedPreferences.getString("habit", ""); //使用toast信息提示框顯示信息 Toast.makeText(this, "讀取數據如下:"+"\n"+"name:" + name + "\n" + "habit:" + habit, Toast.LENGTH_LONG).show();
3、SharedPreferences的四種操作模式: Context.MODE_PRIVATE Context.MODE_APPEND Context.MODE_WORLD_READABLE Context.MODE_WORLD_WRITEABLE Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容 Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件. Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件. MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取. MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入.
很多時候我們開發的軟件需要向用戶提供軟件參數設置功能,例如我們常用的QQ,用戶可以設置是否允許陌生人添加自己為好友。對於軟件配置參數的保存,如果是window軟件通常我們會采用ini文件進行保存,如果是j2se應用,我們會采用properties屬性文件或者xml進行保存。如果是Android應用,我們最適合采用什麼方式保存軟件配置參數呢?Android平台給我們提供了一個SharedPreferences類,它是一個輕量級的存儲類,特別適合用於保存軟件配置參數。使用SharedPreferences保存數據,其背後是用xml文件存放數據,文件存放在/data/data/
SharedPreferences sharedPreferences = getSharedPreferences("ljq", Context.MODE_PRIVATE); Editor editor = sharedPreferences.edit();//獲取編輯器 editor.putString("name", "林計欽"); editor.putInt("age", 24); editor.commit();//提交修改
因為SharedPreferences背後是使用xml文件保存數據,getSharedPreferences(name,mode)方法的第一個參數用於指定該文件的名稱,名稱不用帶後綴,後綴會由Android自動加上。方法的第二個參數指定文件的操作模式,共有四種操作模式,這四種模式前面介紹使用文件方式保存數據時已經講解過。如果希望SharedPreferences背後使用的xml文件能被其他應用讀和寫,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE權限。
另外Activity還提供了另一個getPreferences(mode)方法操作SharedPreferences,這個方法默認使用當前類不帶包名的類名作為文件的名稱。
訪問SharedPreferences中的數據如果訪問其他應用中的Preference,前提條件是:該preference創建時指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE權限。
如:有個
getSharedPreferences("ljq", Context.MODE_WORLD_READABLE);
其他應用要訪問上面應用的preference,首先需要創建上面應用的Context,然後通過Context 訪問preference ,訪問preference時會在應用所在包下的shared_prefs目錄找到preference :
Context otherAppsContext = createPackageContext("com.ljq.action", Context.CONTEXT_IGNORE_SECURITY); SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("ljq", Context.MODE_WORLD_READABLE); String name = sharedPreferences.getString("name", ""); int age = sharedPreferences.getInt("age", 0);
如果不通過創建Context訪問其他應用的preference,也可以以讀取xml文件方式直接訪問其他應用preference對應的xml文件,如:
File xmlFile = new File("/data/data/
android 自定義狀態欄和導航欄分析與實現 效果 android 4.4之後,系統是支持自定義狀態欄和導航欄的,舉個最典型的例子就是bilibili客戶端了(iO
計時器(Chronometer)的使用,計時器chronometer安卓提供了一個計時器組件:Chronometer,該組件extends TextView,因此都會顯示
基於anyrtc的sdk實現直播連麥互動,anyrtcsdk直播基於anyrtc的sdk實現直播連麥互動 前言 1.由於粘貼了較大的代碼,造成內容比較長,可能會花費您
Android搜索功能的案例,本地保存搜索歷史記錄 同事負責開發的APP有一個搜索功能,並且需要顯示搜索的歷史記錄,我閒暇之余幫她開發了這個功能,現把該頁面抽取成一個