Preperences 是一种应用程序内部轻量级的数据存储方案。Preferences主要用于存储和查询简单数据类型的数据,这些简单数据类型包括boolean、int、float、long以及 String 等,存储方式以键值对的形式存放在应用程序私有的文件夹下。
Preferences 一般用来存储应用程序的设置信息,如应用程序的色彩方案、文字字体等。在应用程序中获取Preferences的方式有如下两种。
调用Context 对象的 getSharedPreferences 方法获得SharedPreferences 对象。需要传入SharedPreferences 的名称和打开模式,名称为 Preferences 文件名称,如果不存在则创建一个以传入名称为名的新的 Preferences文件;打开模式为 PRIVATE、 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 其中之一。
调用Activity对象的 getPreferences 方法获得 SharedPreferences对象。需要传入打开模式,打开模式为 PRIVATE、 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE其中之一。
两种获得SharedPreferences 对象的最大的不同就是通过 Context对象 的getSharedPreferences方法获得的对象可以被同一应用程序下的其他组件共享,而是用Activity对象 的getPreferences 方法获得的对象只能被调用该方法所在的Activity使用。
SharedPreferences 对象中提供了一系列的 get 方法用于接收键返回对应的值。如果需要对Preferences 文件中存储的键值进行修改,首先需要调用 SharedPreferences的 edit 方法获得一个Editor 对象,该对象可以用来修改 Preferences 文件中存储的内容。下面通过一个小例子来说明 Preferences 的用法。
先看一看运行效果 当我们第一次运行程序 没有任何数据。
当我们在文本框输入 123456789 之后点击back--->按钮 然后再次启用应用程序 的时候就会发现 我们上次输入的值显示在了文本框上
下面我们来看代码吧
Preferences 一般用来存储应用程序的设置信息,如应用程序的色彩方案、文字字体等。在应用程序中获取Preferences的方式有如下两种。
调用Context 对象的 getSharedPreferences 方法获得SharedPreferences 对象。需要传入SharedPreferences 的名称和打开模式,名称为 Preferences 文件名称,如果不存在则创建一个以传入名称为名的新的 Preferences文件;打开模式为 PRIVATE、 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 其中之一。
调用Activity对象的 getPreferences 方法获得 SharedPreferences对象。需要传入打开模式,打开模式为 PRIVATE、 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE其中之一。
两种获得SharedPreferences 对象的最大的不同就是通过 Context对象 的getSharedPreferences方法获得的对象可以被同一应用程序下的其他组件共享,而是用Activity对象 的getPreferences 方法获得的对象只能被调用该方法所在的Activity使用。
SharedPreferences 对象中提供了一系列的 get 方法用于接收键返回对应的值。如果需要对Preferences 文件中存储的键值进行修改,首先需要调用 SharedPreferences的 edit 方法获得一个Editor 对象,该对象可以用来修改 Preferences 文件中存储的内容。下面通过一个小例子来说明 Preferences 的用法。
先看一看运行效果 当我们第一次运行程序 没有任何数据。
当我们在文本框输入 123456789 之后点击back--->按钮 然后再次启用应用程序 的时候就会发现 我们上次输入的值显示在了文本框上
下面我们来看代码吧
- package xiaohang.zhimeng;
- import android.app.Activity;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.widget.EditText;
- public class Activity01 extends Activity {
- EditText etPre;
- //定义SharedPreferences对象
- SharedPreferences sp;
- //定义Preferences 文件中的键
- public final String EDIT_TEXT_KEY = "EDIT_TEXT";
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- etPre = (EditText)findViewById(R.id.et);
- sp = getPreferences(MODE_PRIVATE);
- String result = sp.getString(EDIT_TEXT_KEY, null);
- if (result != null) {
- etPre.setText(result);
- }
- }
- @Override
- protected void onDestroy() {
- //获得SharedPreferences 的Editor对象
- SharedPreferences.Editor editor = sp.edit();
- //修改数据
- editor.putString(EDIT_TEXT_KEY, String.valueOf(etPre.getText()));
- editor.commit();
- super.onDestroy();
- }
- }