您的位置:首页 > 移动开发 > Android开发

SharedPerferences 保存数据,android提供用于保存简单配置信息,标记,用户数据的一种方式

2016-09-18 22:35 555 查看
使用SharedPreferences 保存数据

SharedPreferences 是android提供用于保存简单配置信息,标记,用户数据的一种方式

数据会以一个XML文件的格式存储在应用程序(APP)的私有目录中

(/data/data/package_name/shared_prefs下的.xml文件),该文件只能被本应用访问,所以数据是安全的

我们也不需要考虑同步问题。

1、写入数据:

通过Activity中的getSharedPreferences(name,mode)获取一个SharedPreference对象

再通过SharedPreference对象得到一个SharedPreference.editor对象,再把数据put到editor中,最后要commit提交保存

存储的数据类型:包含基本数据类型和字符串,不支持其它类型

2、读取数据

获取SharedPreference对象后通过getString方法指定key获取

3、清除数据

把shared_prefs下的文件内容清除,可以使用editor.clear方法,清除后文件还在,内容被清除

实例: 在编辑信息时,其它应用被打开后,保存正在编辑的信息,用户返回该应用后可以继续编辑信息:

布局文件配置:

<TextView
android:text="信心"
android:id="@+id/editText_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/button"
android:layout_alignParentTop="true" />

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText_msg"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/button"
android:layout_toStartOf="@+id/button" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送"
android:onClick="sendClick"
android:id="@+id/button"
android:layout_alignBottom="@+id/editText_msg"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />


2.activity中

private TextView textView_info;
private EditText editText_msg;
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView_info= (TextView) findViewById(R.id.editText_info);
editText_msg= (EditText) findViewById(R.id.editText_msg);
sp =getSharedPreferences("msg",MODE_PRIVATE);
}

//从shaped_prefs读取数据保存在editView上
@Override
protected void onResume() {
super.onResume();
String msg = sp.getString("msg", "");
editText_msg.setText(msg);
}

//保存editText上的数据
@Override
protected void onPause() {
super.onPause();
String msg =editText_msg.getText().toString();
if(TextUtils.isEmpty(msg)){
return;   //是为了程序不在往下执行
}
SharedPreferences.Editor editor = sp.edit();
//文件名为msg.xml
editor.putString("msg",msg);
editor.commit();
}

public void sendClick(View view){
String msg =editText_msg.getText().toString();
if(TextUtils.isEmpty(msg)){
Toast.makeText(MainActivity.this, "msg not null", Toast.LENGTH_SHORT).show();
return;
}
textView_info.append("\n"+msg);
editText_msg.setText("");
SharedPreferences.Editor editor = sp.edit();
editor.clear();  //清除shared_perfs文件的内容
editor.commit();
}


小结:

使用SharedPreferences 在项目中可以实现:

1.用户自动登录功能(token(令牌),cookie(小甜点),session(会话–有生命周期))

2.应用程序首次启动的引导页面

3.保存临时数据(发送短信)

4.应用的配置参数(个性化参数)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android