[转]Android数据存储SharedPreferences的使用

本文转自:http://yaku2688.iteye.com/blog/1185348

SharedPreferences配置文件为XML文件,路径:/data/data/<package name>/shared_prefs目录下

关键代码:

Java代码  
  1. //第一个参数用于指定该文件的名称,第二个参数指定文件的操作模式,共有四种操作模式。   
  2. //如果希望生成的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。   
  3. //另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。   
  4. SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);     
  5. Editor edit = perferences.edit();//获得编辑器   
  6. edit.putString("name""我是内容");     
  7. edit.putInt("age"20);     
  8. edit.commit();//提交内容  

获取数据:

Java代码  
  1. SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);     
  2. String nameStr = preference.getString("name""");//如果取不到值就取值后面的参数      
  3. int ageStr = preference.getInt("age"0);     
  4.   
  5. //其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference    
  6. Context context = createPackageContext("cn.yaku.action", Context.CONTEXT_IGNORE_SECURITY);   
  7. SharedPreferences perferences = context.getSharedPreferences("yaku", Context.MODE_WORLD_READABLE);   
  8. String name = perferences.getString("name""");   
  9. int age = perferences.getInt("age"0);   
  10.   
  11. //如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:    
  12. File xmlFile = new File("/data/data/<package name>/shared_prefs/yaku.xml");  

 示例代码:

Java代码  
  1. package com.yaku.SharedPreferences;   
  2.   
  3. import com.yaku.test.R;   
  4.   
  5. import android.app.Activity;   
  6. import android.content.Context;   
  7. import android.content.SharedPreferences;   
  8. import android.content.SharedPreferences.Editor;   
  9. import android.os.Bundle;   
  10. import android.view.View;   
  11. import android.view.View.OnClickListener;   
  12. import android.widget.Button;   
  13. import android.widget.EditText;   
  14. import android.widget.Toast;   
  15.   
  16. /**  
  17.  * SharedPerferences的使用  
  18.  * @author Administrator  
  19.  */  
  20. public class ShareActivity extends Activity {   
  21.     private EditText name;   
  22.     private EditText age;   
  23.     private Button sure;   
  24.     private Button recover;   
  25.     private Button clear;   
  26.     protected void onCreate(Bundle savedInstanceState) {   
  27.         // TODO Auto-generated method stub   
  28.         super.onCreate(savedInstanceState);   
  29.         setContentView(R.layout.sharedperference);   
  30.            
  31.         name = (EditText)findViewById(R.id.name);   
  32.         age = (EditText)findViewById(R.id.age);   
  33.         sure = (Button)findViewById(R.id.sure);   
  34.         recover = (Button)findViewById(R.id.recover);   
  35.         clear = (Button)findViewById(R.id.clear);   
  36.         //保存信息到yaku.xml文件   
  37.         sure.setOnClickListener(new OnClickListener() {   
  38.             @Override  
  39.             public void onClick(View v) {   
  40.                 String nameStr = name.getText().toString();   
  41.                 String ageStr = age.getText().toString();   
  42.                 if(!"".equals(nameStr)&&nameStr!=null && !"".equals(ageStr)&&ageStr!=null){   
  43.                     SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);   
  44.                     Editor edit = perferences.edit();   
  45.                     edit.putString("name", nameStr);   
  46.                     edit.putInt("age", Integer.parseInt(ageStr));   
  47.                     edit.commit();   
  48.                     Toast.makeText(ShareActivity.this"OK"0).show();   
  49.                 }   
  50.             }   
  51.         });   
  52.         //恢复保存的数据   
  53.         recover.setOnClickListener(new OnClickListener() {   
  54.             @Override  
  55.             public void onClick(View v) {   
  56.                 SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);   
  57.                 String nameStr = preference.getString("name""");//如果取不到值就取值后面的参数   
  58.                 int ageStr = preference.getInt("age"0);   
  59.                 name.setText(nameStr);   
  60.                 age.setText(String.valueOf(ageStr));   
  61.             }   
  62.         });   
  63.         //清除数据   
  64.         clear.setOnClickListener(new OnClickListener() {   
  65.             @Override  
  66.             public void onClick(View v) {   
  67.                 name.setText(null);   
  68.                 age.setText(null);   
  69.             }   
  70.         });   
  71.     }   
  72. }  
原文地址:https://www.cnblogs.com/freeliver54/p/2307133.html