SharedPreferences进行数据存储


在Android中有四种数据存储方法1:SharedPreferences 2:文件 3:数据库 4:网络

今天主要学习了一下用SharedPreferences 进行数据存储

主要用到下面两个

1:public abstract SharedPreferences getSharedPreferences (String name, int mode)

这个接口第一个参数是名称,第二个参数代表操作模式 主要有四种模式(私有: MODE_PRIVATE  可读:MODE_WORLD_READABLE

 可写:MODE_WORLD_WRITEABLE ;MODE_MULTI_PROCESS       

2:public abstract SharedPreferences.Editor edit ()

注意文档中这句话

 Note that you must call commit() to have any changes you perform in the Editor actually show up in the SharedPreferences.

你必须对编辑好的内容进行commmit()提交,【很多时候我们会很容易忘记commit(),不然我们会SharedPreferences失败】

接下写代码:在EditText保存内容,当我们退出屏幕的时候,在返回我们会发现先前编辑的内容又出现了;

源码下载地址:

免费下载地址在 http://linux.bkjia.com/

用户名与密码都是www.bkjia.com

具体下载目录在 /2012年资料/1月/13日/SharedPreferences进行数据存储/

因为我们点击提交的时候,其实把编辑的内容以XML文件的形式保存在/data/data/自己的包名/shared_prefs/下面上图为证:


下面源代码:

[java]  
  1. package com.jiangg.sharedpreferences;   
  2. import android.app.Activity;  
  3. import android.content.SharedPreferences;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7. import android.widget.Button;  
  8. import android.widget.EditText;  
  9. import android.widget.Toast;  
  10.   
  11. public class SharedPreferencesActivity extends Activity  
  12. {  
  13.     private Button bt;  
  14.     private EditText et1;  
  15.   
  16.     @Override  
  17.     public void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.main);  
  20.         bt = (Button) this.findViewById(R.id.bt1);  
  21.         et1 = (EditText) this.findViewById(R.id.ed1);  
  22.         // 获得SharedPreferences实例   
  23.         SharedPreferences sharedPreferences = getSharedPreferences("sms",  
  24.                 MODE_WORLD_READABLE);  
  25.         // 从SharedPreferences中获得内容   
  26.         String con = sharedPreferences.getString("content""");  
  27.   
  28.         et1.setText(con);  
  29.         bt.setOnClickListener(new OnClickListener() {  
  30.   
  31.             @Override  
  32.             public void onClick(View v) {  
  33.                 // 获得编辑器   
  34.                 SharedPreferences.Editor sEditor = getSharedPreferences("sms",  
  35.                         MODE_WORLD_WRITEABLE).edit();  
  36.                 // 将EditText中的文件添加到编辑器   
  37.                 sEditor.putString("content", et1.getText().toString());  
  38.                 // 这里必须进行commit,   
  39.                 sEditor.commit();  
  40.                 Toast.makeText(SharedPreferencesActivity.this,  
  41.                         "SharePerferences保存成功", Toast.LENGTH_LONG).show();  
  42.             }  
  43.         });  
  44.     }  
  45. }  

有时候我们在使用当前应用程序的时候,突然会遇到短信,或者电话来时,当前的Activity可能会被回收,

此时我们需要立刻保存一下当前页面的一些信息,根据Activity的生命周期,可以在onStop()方法内进行保存

相关内容