SharedPreferences是一種輕型的數據存儲方式,基於XML文件存儲key-value pairs鍵值對數據,通常用來存儲一些簡單的配置信息。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。每一個 SharedPreferences 文件都是由framework管理的並且可以是私有或者可共享的。
數據存儲
新建一個Android項目,在MainActivity的onCreate方法中,調用getSharedPreferences方法,需要注意的是,如果已經存在文件則不會新建,如果鍵值對不存在則會繼續添加到裡面,如果存在名字相同,值不同則會覆蓋原有的值。
Context context=MainActivity.this;
SharedPreferences shared=context.getSharedPreferences("Test", MODE_PRIVATE);
Editor editor=shared.edit();
editor.putString("Name", "FlyElephant");
editor.putInt("Age", 24);
editor.putBoolean("IsMarried", false);
editor.commit();
存儲完之後這個時候之後就發現,文件夾下多了一個Test.xml,全路徑應該是data/data/com.example.preference/shared_prefs/Test.xml
導出之後發現xml中內容為:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="Name">FlyElephant</string>
<int name="Age" value="24" />
<boolean name="IsMarried" value="false" />
</map>
顯示數據
設置一個按鈕點擊事件loadData
public void loadData(View view){
SharedPreferences shared=MainActivity.this.getSharedPreferences("Test", MODE_PRIVATE);
EditText editText=(EditText) findViewById(R.id.edit_sharedName);
editText.setText(shared.getString("Name", ""));
EditText editAge=(EditText) findViewById(R.id.edit_sharedAge);
String ageString=String.valueOf(shared.getInt("Age", 0));
editAge.setText(ageString);
}
數據顯示結果:
刪除節點
點擊第二個按鈕,執行的事件:
public void deleteNode(View view) {
SharedPreferences shared=MainActivity.this.getSharedPreferences("Test", MODE_PRIVATE);
Editor editor=shared.edit();
editor.remove("Age");
editor.commit();
Toast.makeText(MainActivity.this, "刪除成功",Toast.LENGTH_SHORT).show();
}
效果如下:
刪除文件
根據路徑,調用一下File就直接刪除了這個文件:
public void deleteFile(View view){
String pathString="/data/data/"+getPackageName()+"/shared_prefs";
File file=new File(pathString,"Test.xml");
Log.i("com.example.preference",pathString);
if (file.exists()) {
file.delete();
}
Toast.makeText(MainActivity.this, "文件刪除成功",Toast.LENGTH_SHORT).show();
}
Android初學中,白天公司搞.NET,晚上回來搞Android,感覺回到了大學,感覺挺好~
作者:FlyElephant
出處:http://www.cnblogs.com/xiaofeixiang
說明:博客經個人辛苦努力所得,如有轉載會特別申明,博客不求技驚四座,但求與有緣人分享個人學習知識,生活學習提高之用,博客所有權歸本人和博客園所有,如有轉載請在顯著位置給出博文鏈接和作者姓名,否則本人將付諸法律。