这里的持久化其实就是本地配置文件的读写,实现方法是通过Activity.getPreferences(int)获取SharedPreferences对象,然后操作配置文件的读写,值得注意的是以下几点:
1)Activity.getPreferences(int mode)等价于Content.getSharedPreferences(String filename,int mode),这里面的filename就是当前class的名称,例如在PersistentTest类中调用getPreferences(0),等价于调用getPreferences("PersistentTest", 0)。如不想用class name做文件名,可以直接调用getSharedPreferences方法,自己指定配置文件的名称。
2)mode值的定义:
MODE_PRIVATE = 0,表示当前配置文件为私有文件,只有当前的应用可以访问。
MODE_WORLD_READABLE = 1,表示当前配置文件可以被其他应用读取。
MODE_WORLD_WRITEABLE = 2,表示当前配置文件可以被其他应用写入。
如果配置文件又想被人读又想被写人,怎么办呢,呵呵,当然是MODE_WORLD_READABLE&MODE_WORLD_WRITEABLE,真的怀疑设计android的人以前是做C/C++的。
3)SharedPreferences是个很有意思的实现,读取数据的时候,直接用get方法就可以了,可是写数据的时候,没用给set方法,呵呵,第一次用这个类一定会以为只能读不能写。如果要写数据的话,需要用editor()方法(为什么不是getEditor()呢?看来设计的人一定是做C/C++的)获取SharedPreferences.Editor类,然后用这个类的put方法写文件。为什么要这样做呢?好久没有看设计模式了,不知道他采用是哪种高级模式,等以后有时间,看看它的实现再做研究吧。
4)在这个实现中,读文件是放在onResume()中,写文件是在onPause()中,为什么要这么做呢,看字面意思,好像只有恢复和暂停的时候才会被执行,那程序第一次创建的时候会读文件吗?来让我们看看Activity的生命周期,就会发现这么做的巧妙之处:
看到了吧,在Activity运行的前后,无论状态怎么转移,onResume()和onPause()一定会被执行,与其说实现的巧妙,还不如赞一下这个生命周期的设计的巧妙,这个巧妙不是说说而已,有时间的话,看看MFC中一个windows或者dialog的生命周期,你就知道这个巧妙的含义了,我们可以省多少的事情啊!所以值得记住的是,在android中想在运行前后必须要执行的语句,就应该放在onResume()和onPause()中。
实例:
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
save();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
read();
}
private void save(){
SharedPreferences setting=this.getPreferences(Activity.MODE_PRIVATE);
setting.edit().putString("HEIGHT", height.getText().toString())
.putString("WEIGHT", weight.getText().toString())
.commit();
}
private void read(){
SharedPreferences setting=this.getPreferences(Activity.MODE_PRIVATE);
height.setText(setting.getString("HEIGHT", ""));
weight.setText(setting.getString("WEIGHT", ""));
}
- 大小: 60.6 KB
分享到:
相关推荐
我们可以通过调用Preference的`persistBoolean`、`persistString`等方法来保存数据,同时使用`getPersistedBoolean`、`getPersistedString`等方法获取已保存的数据。 五、自定义Preference 如果标准的Preference...
本项目"Android应用源码之Preference_Demo"是一个毕业设计示例,它深入展示了如何在Android应用程序中创建和管理用户偏好设置。通过分析这个源码,我们可以学到以下几个关键知识点: 1. **Preference组件**: - `...
在Android系统中,数据存储是应用程序管理用户数据和配置的关键环节。Android提供了多种方式来存储数据,以适应不同场景和需求。本节将详细介绍其中的Preference、File、SQLite数据库以及Content Provider这四种主要...
Android提供preference这个键值对的方式来处理这种情况,自动保存这些数据,并立时生效,同时Android提供一种类似的layout的方式来进行Preference的布局。 Preference组件有ListPreference,EditTextPreference,...
5. **数据持久化**:Preference默认使用SharedPreferences进行数据持久化,每次用户更改设置,都会自动保存到 SharedPreferences 文件中,下次启动应用时,会自动恢复上次的设置状态。 6. **样式和主题**:可以通过...
本篇文章将深入探讨`Android程序 preference应用`,并结合一个注册案例来详细阐述如何在应用程序中使用Preference及其数据存储机制。 首先,`Preference`类是Android SDK中的一个关键组件,位于`android.preference...
- `Preference`默认将数据保存在`SharedPreferences`中,这是一个轻量级的数据存储方式,用于保存键值对形式的简单数据,通常用于应用的配置或用户设置。 6. **自定义Preference**: - 如果标准的`Preference`...
本示例"安卓Preference存储数据Demo"将深入讲解如何在Android应用程序中使用Preference来存储联系人信息。 首先,Preference分为两种类型:XML定义的Preferences和编程式Preferences。在这个Demo中,我们可能看到了...
此DEMO内含基本的android preference framework的简单介绍,包括CheckboxPreference, RingtonePreference, EditTextPreference以及...主要探究了一下android 怎么通过使用preference从而达到对用户定制的数据进行保存。
- SharedPreferences是一种轻量级的持久化数据存储方式,常用于存储配置信息或者简单设置。 - 它允许开发者以键值对的形式(NVP:Name/Value Pair)保存数据,如字符串、整数、布尔值等。 - SharedPreferences...
SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储少量简单的键值对数据,如配置设置、用户偏好等。在本篇博文中,我们将深入探讨如何使用SharedPreferences进行数据存储,并通过源码分析其...
`SharedPreferences`是一个轻量级的数据存储机制,用于保存应用的简单配置数据,如布尔值、整数、浮点数、字符串等。当用户在`Preference`界面进行操作时,这些改变会被保存到`SharedPreferences`中,以便在应用下次...
- `SharedPreferences`是Android中用于持久化轻量级数据的类,常用来存储`Preference`的值。`Preference`会自动使用`SharedPreferences`来保存用户更改的设置。 - 当应用关闭或重启时,`Preference`会自动从`...
总结,`Preference`类在Android开发中扮演了至关重要的角色,它简化了设置界面的创建和管理,同时也提供了对用户设置数据的存储和恢复。通过理解`Preference`的用法和与其相关的组件,开发者能够高效地构建出用户...
在Android开发中,数据存储是不可或缺的一部分,尤其是在处理用户设置或者临时数据时。"android实现ShowpreferencePre存储"这个话题主要关注的是如何利用Preference来保存和管理应用程序中的轻量级数据,例如用户的...
总结来说,Android数据存储与访问涵盖了多种技术,包括简单易用的SharedPreferences、灵活的文件存储、强大的SQLite数据库以及跨应用数据共享的ContentProvider。理解并掌握这些技术,对于Android开发来说至关重要,...
- Android提供`SharedPreferences`来存储简单的键值对数据,通常用于存储`Preference`的状态。当`Preference`的值改变时,可以调用`SharedPreferences.Editor`的`apply()`或`commit()`方法来保存更改。 - `...
**SharedPreferences** 是Android提供的一种轻量级的数据存储机制,主要用于存储简单的小型数据,如用户设置、应用配置等。它以键值对(Name/Value Pair)的形式将数据保存在文件系统中,文件的格式通常是XML。...
PreferenceActivity内部依赖于`SharedPreferences`进行数据存储。这是一种轻量级的存储方式,适合保存简单的键值对数据。当用户在设置界面对某项偏好做出更改时,这些更改会通过`SharedPreferences`以键值对的形式...
总的来说,Android的Preference组件提供了一种简单、直观的方式来处理用户设置,使得开发者可以轻松地保存和恢复用户的偏好数据,同时提供了统一的界面风格。通过XML定义和Java代码的结合,我们可以构建出丰富的设置...