SharedPreferences調用edit()方法即可獲取它對應的Edit()對象。Editor()提供如下方法來向SharedPreferences
寫入數據:
一:SharedPreferences.Editor clear() :清空shareSharedPreferences裏面的所有數據
二:SharedPreferences.Editor putxxx(String key,xxx value):向SharedPreferences存入指定的key對應的數據
其中xxx可以是int,String等各種數據類型
三:SharedPreferences.Editor remov(String key):刪除sharepreference裏面指定key對應的數據項
四:Editor.commit():調用該方法提交修改
代碼如下:(ps:read和write兩個按鈕,在xml佈局文件裏面定義)
public class MainActivity extends Activity {
SharedPreferences preferences;
SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
//返回一個SharedPreferences,第一個參數:創建名爲createFile的文件,如果不存在成爲就自動創建
preferences = getSharedPreferences("createFile", MODE_PRIVATE);//MODE_PRIVATE指定改sharedpreference數據只能被本應用讀寫
editor = preferences.edit();
Button read = (Button)findViewById(R.id.read);
Button write = (Button)findViewById(R.id.write);
//SharedPreferences讀取數據操作
read.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String time = preferences.getString("time",null);//返回名爲time的preferen,如果該preference不存在則返回默認值
int random = preferences.getInt("random", 0);
String result = time == null ? "暫時還未寫入數據" : "寫入的時間爲:"
+time+"上次生成的隨機數爲: "+random;
Toast.makeText(MainActivity.this,result,1000).show();
}
});
//SharedPreferences寫入數據操作
write.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SimpleDateFormat adf = new SimpleDateFormat("yyyy年mm月dd日"+"hh:mm:ss");//獲取當前時間
editor.putString("time",adf.format(new Date()));//存入當前時間
editor.putInt("random", (int) (Math.random() * 101));//存入一個隨機數
editor.commit();//提交所有保存的數據
}
});
}
}
SharedPreferences的數據總是保存在/data/data/<包名>/shared_prefs目錄下,總是以xml文件的形式保存寫入的內容
擴展:可以用
SharedPreferences來記錄程序啓動的次數,當用戶點一次啓動應用程序時,系統創建一個SharedPreferences來記錄使用次數,以後用戶每啓動一次,然後使用次數就甲一。可以用於判斷程序是否是第一次啓動,如果是
第一次啓動那麼就展示引導頁,否則直接進入主頁
代碼如下:
SharedPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
preferences = getSharedPreferences("count",MODE_PRIVATE);
//用count來記錄程序啓動的次數
int count = preferences.getInt("count",0);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("count",count++);
editor.commit();
}