android開發之-軟體佈建儲存-快速學會使用SharedPreferences篇-實測

來源:互聯網
上載者:User

我們在設計軟體的時候,需要記錄軟體佈建的基本資料,那麼怎麼來儲存他們呢?我們可以使用SharedPreferences。 SharedPreferences是一個xml檔案,用來儲存軟體的常規設定。例如:登陸框的使用者名稱或使用者自己的設定資訊。 SharedPreferences自動儲存在data/data//shared_prefs 

                       

userInfo.xml便是我們設定的儲存的檔案。檔案名稱可以自己指定。 那麼怎麼實現呢?下面我們一步一步來說:第一步:建立SharedPreferences:android為我們提供了或的方法,這個方法在有檔案時,返回SharedPreferences對象,沒有是在建立editor 後執行Editor.commit()是建立。
原文:
Desired preferences file. If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
代碼1:
SharedPreferences preferences = getSharedPreferences("userInfo",Activity.MODE_PRIVATE);

解釋: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//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()方法中使用
@Override protected 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初學者,第一次開博,錯誤之處難免,請大家多多包含,指教。

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.