博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]Android数据存储SharedPreferences的使用
阅读量:6223 次
发布时间:2019-06-21

本文共 6487 字,大约阅读时间需要 21 分钟。

本文转自:

 

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/
/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);			}		});	}}

 

 

转载地址:http://anrja.baihongyu.com/

你可能感兴趣的文章
【转】Deep Learning(深度学习)学习笔记整理系列之(四)
查看>>
Protostuff序列化
查看>>
Servlet & Jsp
查看>>
python Image模块基本语法
查看>>
DS博客作业01--日期抽象数据类型设计与实现
查看>>
docker镜像的操作
查看>>
Tomcat 9.0安装配置
查看>>
mybatis :实现mybatis分页
查看>>
hdu-2685 I won't tell you this is about number theory---gcd和快速幂的性质
查看>>
异常处理
查看>>
家庭记事本开发进度2
查看>>
[Azure] 使用 Visual Studio 2013 管理中国版 Azure 订阅
查看>>
VB动态添加WebBrowser控件,并拦截弹出窗口(不用引用任何组件)
查看>>
C#线程的参数传递
查看>>
HDU1059
查看>>
jquery 选择器多个
查看>>
关于Maya 的 Node ID
查看>>
[转]DPM2012系列之十一:还原exchange 2010数据库
查看>>
Vector、ArrayList、List使用深入剖析
查看>>
教孩子学编程 Python
查看>>