Android資料存放區之SharedPreferences

來源:互聯網
上載者:User

前一段時間因為學業關係都太忙了,最近好不容易閑下來了,儘管如此,但是自己還是有很多東西要學習,不過在5月份之前,擺在我面前的最重要的兩件事是Android的學習和Java網路編程的學習。說起來Android開發,從去年8月份開始學習,直到現在都有9個月了,如果讓我這9個月啥都不做,我一定可以在這一領域小有成績的,可惜的是上個學期的課實在太多了,沒辦法擠出系統的時間好好學習,以至於直到現在Android開發還是半生不熟,好在現在終於可以閱讀官方文檔,將以前學習到的零散的知識一點一點地串聯想來了。在開始總結資料庫開發之前,有件事不得不說,我目前手頭有三本關於Android開發的書,分別是《Android開發入門與實戰》、《Android SDK開發範例大全》和《Android應用開發揭秘》,前兩本書是我自己買的,第三本是參加活動得到的獎品。總體來說第一本還是不錯的,只是錯誤太多,很多知識點都講不到,第二本沒怎麼看,權當參考書了,第三本書重點在對動畫和遊戲方面涉及了很多,我只看過一總分,當後來閱讀官方文檔時,才發現第三本書就我所看過的,全是在翻譯官方文檔,不知道我沒看過的會怎麼樣。我建議,以後學習的時候,如果有官方文檔,一定要優先讀官方文檔,不要怕有英文,你可以像我這樣開著靈格斯,哪個單詞不懂,就查一下,很容易理解的。

SharedPreferences是以索引值對來儲存應用程式的配置資訊的一種方式,它只能儲存基礎資料型別 (Elementary Data Type)。一個程式的設定檔僅可以在本應用程式中使用,或者說只能在同一個包內使用,不能在不同的包之間使用。 實際上SharedPreferences是採用了XML格式將資料存放區到裝置中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。

以下表格為擷取SharedPreferences對象的兩個方法:

傳回值

函數

備忘

SharedPreferences

Context.getSharedPreferences(String name,int mode)

name為本組件的設定檔名(如果想要與本應用程式的其他組件共用此設定檔,可以用這個名字來檢索到這個設定檔)。

mode為操作模式,預設的模式為0或MODE_PRIVATE,還可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。

SharedPreferences

Activity.getPreferences(int mode)

設定檔僅可以被調用的Activity使用。

mode為操作模式,預設的模式為0或MODE_PRIVATE,還可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。

如果要讀取設定檔資訊,只需要直接使用SharedPreferences對象的getXXX()方法即可,而如果要寫入配置資訊,則必須先調用SharedPreferences對象的edit()方法,使其處於可編輯狀態,然後再調用putXXX()方法寫入配置資訊,最後調用commit()方法提交更改後的設定檔。

以下是範例程式碼:

import android.app.Activity;

import android.content.SharedPreferences;

public class Calc extends Activity {

public static final String PREFS_NAME = "MyPrefsFile";

. . .

@Override

protected void onCreate(Bundle state){

super.onCreate(state);

. . .

//載入設定檔

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

//或者使用 SharedPreferences settings = getPreferences(0);

boolean silent = settings.getBoolean("silentMode", false);

setSilent(silent);

}

@Override

protected void onStop(){

super.onStop();

//寫入設定檔。可以使用SharedPreferences.Editor來輔助解決。

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

SharedPreferences.Editor editor = settings.edit();

editor.putBoolean("silentMode", mSilentMode);

editor.commit(); //一定要記得提交

//或者再簡單化一可以這樣寫

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

setting.edit().putBoolean(“silentMode”,mSilentMode).commit();

}

}

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.