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();//提交内容  
//第一个参数用于指定该文件的名称,第二个参数指定文件的操作模式,共有四种操作模式。
//如果希望生成的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
//另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。
SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);
Editor edit = perferences.edit();//获得编辑器
edit.putString("name", "我是内容");
edit.putInt("age", 20);
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");  
SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);  
String nameStr = preference.getString("name", "");//如果取不到值就取值后面的参数
int ageStr = preference.getInt("age", 0);

//其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference
Context context = createPackageContext("cn.yaku.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences perferences = context.getSharedPreferences("yaku", Context.MODE_WORLD_READABLE);
String name = perferences.getString("name", "");
int age = perferences.getInt("age", 0);

//如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
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. }  
package com.yaku.SharedPreferences;

import com.yaku.test.R;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/**
* SharedPerferences的使用
* @author Administrator
*/
public class ShareActivity extends Activity {
private EditText name;
private EditText age;
private Button sure;
private Button recover;
private Button clear;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sharedperference);

name = (EditText)findViewById(R.id.name);
age = (EditText)findViewById(R.id.age);
sure = (Button)findViewById(R.id.sure);
recover = (Button)findViewById(R.id.recover);
clear = (Button)findViewById(R.id.clear);
//保存信息到yaku.xml文件
sure.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String nameStr = name.getText().toString();
String ageStr = age.getText().toString();
if(!"".equals(nameStr)&&nameStr!=null && !"".equals(ageStr)&&ageStr!=null){
SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);
Editor edit = perferences.edit();
edit.putString("name", nameStr);
edit.putInt("age", Integer.parseInt(ageStr));
edit.commit();
Toast.makeText(ShareActivity.this, "OK", 0).show();
}
}
});
//恢复保存的数据
recover.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);
String nameStr = preference.getString("name", "");//如果取不到值就取值后面的参数
int ageStr = preference.getInt("age", 0);
name.setText(nameStr);
age.setText(String.valueOf(ageStr));
}
});
//清除数据
clear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
name.setText(null);
age.setText(null);
}
});
}
}