SharePreferences


SharedPreferences


基本用法:
1)存數據:
//第一個參數是文件名,不需要加.xml后綴,如果文件不存在,系統會自動生成。
//文件路徑為:/data/data/<packagename>/shared_prefs/xxx.xml

SharedPreferences sp = getSharedPreferences("loginsetting", MODE_PRIVATE);
String name = sp.getString("name", "");
String password = sp.getString("pwd", "");

2)取數據

SharedPreferences sp = getSharedPreferences("loginsetting", MODE_PRIVATE);
String name = sp.getString("name", "");
String password = sp.getString("pwd", "");

其他:
//getPreferences(mode)與getSharedPreferences(String filename,mode)
//區別在於getPreferences只有一個參數,不能指定文件名,文件名固定為
//當前Activity的名字,不包含包名。

SharedPreferences sp = getPreferences(MODE_PRIVATE); 
Editor editor = sp.edit(); 
editor.putFloat("money", 100000.0f); 
editor.commit();

//通過PreferenceManager.getDefaultSharedPreferences(Context),獲取到
的SharedPreferences MODE默認為MODE_PRIVATE,而且生成文件名為
<包名>_preferences.xml

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 
Editor editor = sp.edit(); 
editor.putFloat("money", 100000.0f); 
editor.commit();

------------------三個mode

MODE_PRIVATE 私有的,不允許其他程序訪問該xml文件。
MODE_WORLD_READABLE 其他程序可以讀取
MODE_WORLD_WRITABLE 其他程序可以寫

這里其他程序如何訪問呢?
有兩種方式:
第一種,在第二個程序中通過File:

File f = new File("/data/data/包名/shared_prefs/xxx.xml"); 
FileInputStream fis = new FileInputStream(f);//在被訪問程序中,MODE_WORLD_READABLE 
FileOutputStream fos = new FileOutputStream(f);//在被訪問程序中,MODE_WORLD_WRITABLE

第二種,通過被訪問程序的Context對象。

Context otherContext = createPackageContext( 
"com.anjoyo.sharedpreference", CONTEXT_IGNORE_SECURITY);

第一個參數為要創建context的包名,第二個參數為創建時忽略安全問題。

SharedPreferences sp = otherContext.getSharedPreferences 
("loginsetting", MODE_WORLD_READABLE); 
String name = sp.getString("name", ""); 
String pwd = sp.getString("pwd", "");

SharedPreference可以保存多個數據


sp = PreferenceManager.getDefaultSharedPreferences(this);

存:

SharedPreferences.Editor editor = sp.edit();
Set<String> set = new HashSet<String>();
set.add("java");
set.add("C++");
set.add("c");
editor.putStringSet("books", set);
editor.commit();

取:

Set<String> books = sp.getStringSet("books", null);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM