SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。
SharedPreferences mSharedPreferences = getSharedPreferences("student_data", Context.MODE_PRIVATE);
1. MODE_APPEND: 追加方式存储
2. MODE_PRIVATE: 私有方式存储,其他应用无法访问
3. MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取
4. MODE_WORLD_WRITEABLE: 表示当前文件可以被其他应用写入
得到SharePreferences的对象之后,我们就需要往XML文件里添加数据,添加数据的时候我们需要一个Editor类来帮助我们操作XML文件,我们首先生成一个Editor对象:Editor mEditor = mSharedPreferences.edit();
mEditor.putString("name", mNameEdit.getText().toString());
mEditor.putString("age",mAgeEdit.getText().toString());String _Name = mSharedPreferences.getString("name", "");
String _Age = mSharedPreferences.getString("age", "");这样我们就可以得到已经保存好的数据,对getString方法,我们需要传两个参数,第一个是我们的“key”来获取我们保存的内容,第二个是如果我们传入的“key”不存在,然么就返回第二个参数的内容,不过我在这里把它传入空字符串罢了,我们可以根据自己的情况传入合适的内容。public class MainActivity extends Activity implements OnClickListener{
private EditText mNameEdit,mAgeEdit;
private Button mSaveBtn,mShowBtn;
private SharedPreferences mSharedPreferences;
Editor mEditor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initVariable();
initListener();
}
private void initVariable() {
/**
* 实例化SharedPreferences对象
*/
mSharedPreferences = getSharedPreferences("student_data", Context.MODE_PRIVATE);
mEditor = mSharedPreferences.edit();
}
private void initListener() {
mSaveBtn.setOnClickListener(this);
mShowBtn.setOnClickListener(this);
}
private void initView() {
mNameEdit = (EditText) findViewById(R.id.et_name);
mAgeEdit = (EditText) findViewById(R.id.et_age);
mSaveBtn = (Button) findViewById(R.id.btn_save);
mShowBtn = (Button) findViewById(R.id.btn_show);
}
@Override
public void onClick(View v) {
if(v.getId()==R.id.btn_save){
save();
}else if(v.getId()==R.id.btn_show){
show();
}
}
private void show() {
String _Name = mSharedPreferences.getString("name", "");
String _Age = mSharedPreferences.getString("age", "");
mNameEdit.setText(_Name);
mAgeEdit.setText(_Age);
}
private void save(){
mEditor.putString("name", mNameEdit.getText().toString());
mEditor.putString("age",mAgeEdit.getText().toString());
mEditor.commit();
}
}
原文地址:http://blog.csdn.net/programchangesworld/article/details/45398335