SharedPreferences是Android平臺上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態,一般在Activity中重載窗口狀態onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平臺常規的Long長整形、Int整形、String字符串型的保存。
2個activity 之間的數據傳遞除了可以通過intent來傳遞,還可以使用SharedPreferences來共享數據的方式。
下面是一個Demo
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //構造函數並實現佈局
}
public void writeData(View view)
{
SharedPreferences mySharedPreferences = getSharedPreferences("test",
MainActivity.MODE_PRIVATE); //實例化SharedPreferences對象
SharedPreferences.Editor editor = mySharedPreferences.edit(); //實例化SharedPreferences.Editor對象
editor.putString("name", "jevirs"); //用putString的方法保存數據
editor.putString("sex", "male");
editor.commit(); //提交當前數據
Toast.makeText(this, "數據成功寫入SharedPreferences!" , //使用toast信息提示框提示成功寫入數據
Toast.LENGTH_LONG).show();
}
public void readData(View view)
{
SharedPreferences sharedPreferences = getSharedPreferences("test",
MainActivity.MODE_PRIVATE); //在讀取數據前要實例化出一個SharedPreferences對象
String name = sharedPreferences.getString("name", ""); // 使用getString方法獲得value,注意第2個參數是value的默認值
String sex = sharedPreferences.getString("sex", "");
Toast.makeText(this, "讀取數據如下:"+"\n"+"name:" + name + "\n" + "sex:" + sex,
Toast.LENGTH_LONG).show(); //同樣使用toast顯示獲取的數據
}
}
其中getSharedPerferences()函數中含有兩個參數(getSharedPreferences("Name",Context.MODE_PRIVATE))。第一個參數是preferece的名稱(比如:test),第二個參數是操作模式,默認的模式爲0或MODE_PRIVATE,還可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE
mode指定爲MODE_PRIVATE,則該配置文件只能被自己的應用程序訪問。
mode指定爲MODE_WORLD_READABLE,則該配置文件除了自己訪問外還可以被其它應該程序讀取。
mode指定爲MODE_WORLD_WRITEABLE,則該配置文件除了自己訪問外還可以被其它應該程序讀取和寫入