讀寫SharedPreferences中的資料

2021-06-18 05:11:49 字數 2396 閱讀 4793

**:

很多時候我們開發的軟體需要向使用者提供軟體引數設定功能,例如我們常用的

qq,使用者可以設定是否允許陌生人新增自己為好友。對於軟體配置引數的儲存,如果是

window軟體通常我們會採用

ini檔案進行儲存,如果是

j2se應用,我們會採用

properties屬性檔案進行儲存。如果是

android應用,我們最適合採用什麼方式儲存軟體配置引數呢?

android平台給我們提供了乙個

sharedpreferences類,它是乙個輕量級的儲存類,特別適合用於儲存軟體配置引數。使用sharedpreferences儲存資料,其背後是用

xml檔案存放資料,檔案存放在

/data/data/name>/shared_prefs目錄下:

sharedpreferences sharedpreferences = getsharedpreferences("zyj", context.mode_private);

editor editor = sharedpreferences.edit();//獲取編輯器

editor.putstring("name", "老李

");editor.putint("age", 4);

editor.commit();//提交修改

生成的 zyj.xml檔案內容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>

老李 因為

sharedpreferences背後是使用

xml檔案儲存資料,getsharedpreferences(name,mode)方法的第乙個引數用於指定該檔案的名稱,名稱不用帶字尾,字尾會由

android自動加上。方法的第二個引數指定檔案的操作模式,共有四種操作模式,這四種模式前面介紹使用檔案方式儲存資料時已經講解過。如果希望

sharedpreferences背後使用的

xml檔案能被其他應用讀和寫,可以指定定

context.mode_world_readable和context.mode_world_writeable許可權。

另外 activity還提供了另乙個

getpreferences(mode)方法操作sharedpreferences,這個方法預設使用當前類不帶包名的類名作為檔案的名稱。

sharedpreferences其實用的是pull直譯器

訪問sharedpreferences中的資料**如下:

sharedpreferences sharedpreferences = getsharedpreferences("zyj", context.mode_private);

//getstring()第二個引數為預設值,如果

preference中不存在該

key,將返回預設值

string name = sharedpreferences.getstring("name", "");

int age = sharedpreferences.getint("age", 1);

如果訪問其他應用中的preference,前提條件是:

該preference建立時指定了context.mode_world_readable或者context.mode_world_writeable許可權。如:有個name>為

com.jbridge.pres.activity的應用使用下面語句建立了

preference。

getsharedpreferences("zyj", context.

mode_world_readable);

其他應用要訪問上面應用的

preference,首先需要建立上面應用的

context,然後通過

context 訪問preference ,訪問preference時會在應用所在包下的

shared_prefs目錄找到

preference :

context_ignore_security

);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//shared_prefs/zyj.xml」);//應替換成應用的包名

讀寫其他應用的SharedPreferences

要讀寫其他應用的sharedpreferences,前提是該sharedpreferences餓應用程式指定相應的訪問許可權,例如指定了mode world readable,這表明該sharedpreferences可被其他應用程式讀取,指定了mode world writable,這表明該sha...

訪問外部程式的SharedPreference

專案1 建立sharedpreference檔案,包名 com.shared.p1 注意1 sharedpreferences shared f getsharedpreferences shared f name context.mode world readable 第二個引數mode設定為co...

訪問外部程式的SharedPreference

專案1 建立sharedpreference檔案,包名 com.shared.p1 注意1 sharedpreferences shared f getsharedpreferences shared f name context.mode world readable 第二個引數mode設定為co...