SharedPreference作用:
提供了一种轻量级的数据存取方法,主要存储数据比较少的配置信息。它以“key-value”对(类似于Map)的方式将数据保存在一个XML配置文件中。
存取数据方法:使用来自于andorid.content包接口
取数据使用:SharedPreferences接口
存数据使用:SharedPreferences.Editor接口

Context.getSharedPreferences(String name,int mode)方法得到SharedPreferences接口。
该方法的第一个参数是文件名称,第二个参数是操作模式。操作模式有三种:
MODE_PRIVATE(私有)
MODE_WORLD_READABLE(可读)
MODE_WORLD_WRITEABLE(可写)

int MODE= MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE

SharedPreferences的使用

Editor的使用

SharedPreferences接口本身并没有提供写入数据的方法,而是通过SharedPreferences内部接口. SharedPreferences调用edit()方法获取它所对应的Editor对象,该对象中提供了保存数据的方法,
 SharedPreferences.Editor editor = getSharedPreferences(TEMP_INFO, MODE_WORLD_WRITEABLE).edit();  

SharedPreferences.Editor接口常用的方法

SharedPreferences的使用

代码:

同个应用程序中
SharedPreferences.Editor editor;//全局变量,用来写
SharedPreferences perfer;//全局变量,用来读
int mode=MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE;//这个是可以在不同应用程序之间可读和可写

perfer=getSharedPreferences("syj",mode);//第一个参数为创建一个文件名为syj,具体目录在data/data下,第二个参数是读写模式(这里是可以在不通应用程序之间可读可写)
editor=perfer.edit();//创建可编辑对象
editor.putString("name", "hello java");//写入键值对,类似MAP
editor.commit();//提交修改
     
String data = perfer.getString("name", null);//读要显示的内容
在不同的Activity下,读内容的方法
SharedPreferences sharedata = getSharedPreferences("syj", 0);
String data = sharedata.getString("name", null);

SharedPreferences的存储位置和格式

DDMS的File Explore面板展开文件浏览树
SharedPreferences数据总是保存在/data/data/<package-name>/shared_prefs目录
SharedPreferences总是已XML格式保存
文件以<map>为根元素,每个子元素代表一个key-value对

SharedPreferences的使用

具体例子,实现一个应用程序的注册,把注册信息用SharePerference保存起来,按下按钮可以读取

首先看布局文件main.xml

View Code
 1 <?xml version="1.0" encoding="utf-8"?>
2 <TableLayout xmlns:andro>86 </TableLayout>

第二步:编写具体实现功能,主要是可以读,可写

View Code
 1 package cn.edu.zwu.tel;
2
3 import android.app.Activity;
4 import android.content.SharedPreferences;
5 import android.os.Bundle;
6 import android.view.View;
7 import android.view.View.OnClickListener;
8 import android.widget.Button;
9 import android.widget.EditText;
10 import android.widget.Toast;
11
12 public class SharedPreTest01Activity extends Activity {
13 SharedPreferences perfer;
14 SharedPreferences.Editor editor;
15 EditText edtzh,edtmm,edtdh;
16 Button btnzc,btndl,btndq;
17 Toast toast;
18 int mode=MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE;
19 @Override
20 public void onCreate(Bundle savedInstanceState) {
21 super.onCreate(savedInstanceState);
22 setContentView(R.layout.main);
23 perfer=getSharedPreferences("lgs000",mode);
24 editor=perfer.edit();
25 edtzh=(EditText)findViewById(R.id.edtzh);
26 edtmm=(EditText)findViewById(R.id.edtmm);
27 edtdh=(EditText)findViewById(R.id.edtdh);
28 btnzc=(Button)findViewById(R.id.btnzc);
29 btndl=(Button)findViewById(R.id.btndl);
30 btndq=(Button)findViewById(R.id.btndq);
31
32 btnzc.setOnClickListener(myListener);
33 btndl.setOnClickListener(myListener);
34 btndq.setOnClickListener(myListener);
35 }
36 OnClickListener myListener=new OnClickListener() {
37
38 @Override
39 public void onClick(View v) {
40 String zh=edtzh.getText().toString();
41 String mm=edtmm.getText().toString();
42 String dh=edtdh.getText().toString();
43 switch(v.getId())
44 {
45 case R.id.btnzc:
46 editor.putString("account", zh);
47 editor.putString("password", mm);
48 editor.putString("phone", dh);
49 editor.commit();
50 toast=Toast.makeText(SharedPreTest01Activity.this,
51 "你的帐号:"+zh+
52 " 密码:"+mm+
53 " 电话:"+dh, 5000);
54 toast.show();
55 edtzh.setText("");
56 edtmm.setText("");
57 edtdh.setText("");
58 return;
59 case R.id.btndl:
60 if((!zh.equals("")&&zh!=null)&&(!mm.equals("")&&zh!=null))
61 if(zh.equals(perfer.getString("account",null))&& mm.equals(perfer.getString("password",null)))
62 toast=Toast.makeText(SharedPreTest01Activity.this,
63 "登录成功!欢迎 "+zh+" 回来!!", 5000);
64 else
65 toast=Toast.makeText(SharedPreTest01Activity.this,
66 "帐号或密码错误,请重新输入!!", 5000);
67 else
68 toast=Toast.makeText(SharedPreTest01Activity.this,
69 "帐号或密码为空,请检查输入!!", 5000);
70 toast.show();
71 return;
72 case R.id.btndq:
73 if(perfer.contains("account")&&perfer.contains("password")&&perfer.contains("phone"))
74 {
75 edtzh.setText(perfer.getString("account",null));
76 edtmm.setText(perfer.getString("password",null));
77 edtdh.setText(perfer.getString("phone",null));
78 }
79 else
80 {
81 toast=Toast.makeText(SharedPreTest01Activity.this,
82 "配置信息不存在或不完整!", 5000);
83 toast.show();
84 }
85 return;
86 }
87
88 }
89 };
90 }

效果图:

SharedPreferences的使用



相关文章:

  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
  • 2021-09-27
猜你喜欢
  • 2021-08-01
  • 2021-12-03
  • 2021-11-11
  • 2021-08-29
  • 2021-07-17
  • 2021-08-01
相关资源
相似解决方案