2014-01-10 44 views
1

我讀過,共享偏好可以從我的應用程序外部檢索。 此代碼沒有工作:閱讀偏好的其他應用程序android

try 
{ 
    myContext = createPackageContext("com.intervigil.micdroid", Context.MODE_WORLD_WRITEABLE); // where com.example is the owning app containing the preferences 
    SharedPreferences testPrefs = myContext.getSharedPreferences("test_prefs", Context.MODE_WORLD_READABLE); 
    Map<String, ?> items = testPrefs.getAll(); 
    nbenroullement= (Integer) items.get("enroullement"); 
    System.out.println("*********************" + nbenroullement); 
} 
catch (NameNotFoundException e) 
{ 
    e.printStackTrace(); 
} 

請任何人都可以幫助我。謝謝

+1

以什麼方式的代碼不能正常工作?它拋出了一個'NameNotFoundException'或其他類型的異常,或者只是沒有找到你正在尋找的值? – npace

+0

我沒有找到我的共享首選項的值 –

+0

顯示代碼獲取共享首選項的代碼,並將'enroullement'鍵存儲在應用程序的'test_prefs'中,包名爲'com.intervigil.micdroid' – doorstuck

回答

0

這可能是因爲你沒有迭代地圖items。 所以,儘量做這樣的事情:

Map<String, ?> items = testPrefs .getAll(); 
for(String s : items.keySet()){ 
    String value = items.get(s).toString()); //this is the key of preferences 

} 

當你獲得這個鍵(enroullement,我相信),你一定要使用這樣的:

enroullement = Integer.valueOf(prefs.getString("enroullement", "0")); //0 is a default value 

希望它能幫助。