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