将数据存储到SharedPreferences中:
getSharedPreferences(文件名, 文件的操作模式);
MODE_PRIVATE:只有当前的应用程序才可以对这个SharedPreferences文件进行读写
MODE_MULTI_PROCESS:一般是用于会有多个进程中对同一个SharedPreferences文件进行读写的情况
得到SharedPreferences对象后,开始向SharedPreferences文件中存储数据,主要分为三步实现:
1. 调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象.
2. 像SharedPreferences.Editor对象中添加数据,比如添加一个布尔型数据就使用putBoolean方法,添加一个字符串则使用putString()方法,以此类推.
3. 调用commit()方法将添加的数据提交,从而完成数据存储操作
通过getSharedPreferences()方法指定SharedPreferences的文件名为data,并得到了SharedPreferences.Editor对象
向这个对象选中添加不同类型的数据
调用commit()方法进行提交
从SharedPreferences中读取数据:
SharedPreferences对象中提供了一系列的get方法用于对存储的数据进行读取,每种get方法都对应了SharedPreferences.Editor中的一种put方法,比如读取一个布尔型数据就使用getBoolean()方法,读取一个字符串就使用getString()方法.这些get方法都接收两参数,第一个参数是键,传入存储数据时时使用的键就可以得到相应的值了,第二个参数是默认值,即表示当传入的键找不到对应的值时,会以什么样的默认值进行返回.
package com.jia.sharedpreferencestest;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button saveData;
private Button restoreData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
saveData = (Button) findViewById(R.id.save_data);
restoreData = (Button) findViewById(R.id.restore_data);
saveData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = getSharedPreferences("data",
MODE_PRIVATE).edit();// 通过getSharedPreferences()方法指定SharedPreferences的文件名为data,并得到了SharedPreferences.Editor对象
editor.putString("name", "yaojiawei");// 向这个对象选中添加不同类型的数据
editor.putInt("age", 26);
editor.putBoolean("married", false);
editor.commit();// 调用commit()方法进行提交
}
});
restoreData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences pref = getSharedPreferences("data",
MODE_PRIVATE);// 通过getSharedPreferences()方法得到了SharedPreferences对象
String name = pref.getString("name", "");
int age = pref.getInt("age", 0);
boolean married = pref.getBoolean("married", false);
Log.d("jia", "name------>" + name);
Log.d("jia", "age------->" + age);
Log.d("jia", "married-------->" + married);
}
});
}
}