安卓一共有四种数据存储方式,包括:SharedPreferences、SQLite、Content Provider、File。后三种方式会在后续博客中详细介绍。
SharedPreferences介绍
- 是一种轻型的数据存储方式
- 本质是基于XML文件存储key—value键值对数据
- 通常用来存储一些简单的配置信息,比如自动登录功能的实现(可以利用SharedPreferences存储用户名和密码)
SharedPreferences使用方法
- SharedPreferences对象只能获取数据而不支持存储和修改,存储和修改是通过Editor对象实现的。
- 实现SharedPreferences存储的步骤如下:
1.获得Sharedpreferences对象,可以通过Context.getSharedPreferences(java.lang.String, int)或者PreferenceManager.getDefaultSharedPreferences(Context context)获得
2.获得SharedPreferences.Editor对象。
3.通过Editor接口的putXxx方法保存key—value键值对,其中Xxx表示不同的数据类型。
4.通过Editor接口的commit方法保存key—value键值对。
Demo
package com.example.sharedpreferencesdemo;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.widget.TextView;
@SuppressLint("CommitPrefEdits")
public class MainActivity extends Activity {
private TextView tvContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvContent = (TextView) findViewById(R.id.tv_content);
//获得SharedPreferences对象
SharedPreferences sp = getSharedPreferences(getPackageName(),
MODE_PRIVATE);
//获得Editor对象
Editor editor = sp.edit();
//通过Editor接口的putXxx方法保存key—value键值对,其中Xxx表示不同的数据类型
editor.putString("name", "sjs");
editor.putInt("age", 20);
//通过Editor接口的commit方法保存key—value键值对
editor.commit();
//通过SharedPreferences的getXxx方法获得相应值
tvContent.setText("name:" + sp.getString("name", "") + "\n" + "age:"
+ sp.getInt("age", 0));
}
}
其中利用SharedPreferences存储数据的存储文件默认保存到了data/data/包名/shared_prefs下,可以通过ADT的DDMS工具查看。
将此文件到处到电脑上用记事本打开: