android开发之-软件设置保存-快速学会使用SharedPreferences篇-实测
? ? ? ? ? ? ? ? ? ? ? ? 效果圖
userInfo.xml便是我們設置的保存的文件。文件名稱可以自己指定。 那么怎么實現呢?下面我們一步一步來說: 第一步:創建SharedPreferences: android為我們提供了或的方法,這個方法在有文件時,返回SharedPreferences對象,沒有是在創建editor 后執行Editor.commit()是創建。解釋:getSharedPreferences第一個參數userInfo為文件名稱,得到的就是userInfo.xml,可以自己起名。
第二個參數Activity.MODE_PRIVATE,是Activity創建文件時的權限,這里是私有的 權限大全:Context.MODE_PRIVATE = 0x0000
Context.MODE_WORLD_READABLE = 0x0001
Context.MODE_WORLD_WRITEABLE = 0x0002
Context.MODE_APPEND = 0x8000
Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件。
Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。
MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。
如果希望文件被其他應用讀和寫,可以傳入:
openFileOutput("leigo.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
?
第二步:初始化添加數據:
代碼2:
//獲得編輯器信息,這個編輯器想一個map,它是以key-values形式存在的。SharedPreferences.Editor edit=preferences.edit(); //將值添加到編輯器中edit.putBoolean("isSendMsg", isSendMsg.isChecked());edit.putBoolean("isCall", isCall.isChecked());edit.commit();//注意在沒有preferences的時候這里進行創建。
添加完之后,我們打開文件可以看到存儲的值。文件存儲在data/data/package/shared_prefs下面, 如果你還不知道怎么查看本地手機文件請看這個android開發之-查看、編輯手機sqlite數據庫文件-實測。
第三步:獲得SharedPreferences?中的值,顯示在手機中。
SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME,Activity.MODE_PRIVATE);//獲得兩個控件,用以展示。isSendMsg = (Switch) findViewById(R.id.isSendMessage);isCall = (Switch) findViewById(R.id.isCall);//將 preferences.getBoolean("isSendMsg", true)信息取出來,賦值給控件,getBoolean的第二個參數是,如果preferences中沒有這個值默認的設置的值。isSendMsg.setChecked(preferences.getBoolean("isSendMsg", true));isCall.setChecked(preferences.getBoolean("isCall", false));好了,至此我們就學習完了怎么使用SharedPreferences了,另外應該注意在退出程序的時候記得保存信息,一般在onStop()方法中使用 @Overrideprotected void onStop() {super.onStop();//停止的時候自動保存信息SharedPreferences preferences=getSharedPreferences(PREFERENCES_NAME,Activity.MODE_PRIVATE);SharedPreferences.Editor edit=preferences.edit();edit.putBoolean("isSendMsg", isSendMsg.isChecked());edit.putBoolean("isCall", isCall.isChecked());edit.commit();}
作為一個android初學者,第一次開博,錯誤之處難免,請大家多多包含,指教。
?
?
?
?
?
轉載于:https://www.cnblogs.com/dava/p/3684586.html
總結
以上是生活随笔為你收集整理的android开发之-软件设置保存-快速学会使用SharedPreferences篇-实测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组队开发第二周第一次会议
- 下一篇: stm32f4 RAM中运行程序 读保护