`

android之简单数据存储Preference

阅读更多
这里的持久化其实就是本地配置文件的读写,实现方法是通过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
分享到:
评论

相关推荐

    Android中Preference的使用以及监听事件分析

    我们可以通过调用Preference的`persistBoolean`、`persistString`等方法来保存数据,同时使用`getPersistedBoolean`、`getPersistedString`等方法获取已保存的数据。 五、自定义Preference 如果标准的Preference...

    Android应用源码之Preference_Demo-IT计算机-毕业设计.zip

    本项目"Android应用源码之Preference_Demo"是一个毕业设计示例,它深入展示了如何在Android应用程序中创建和管理用户偏好设置。通过分析这个源码,我们可以学到以下几个关键知识点: 1. **Preference组件**: - `...

    Android中的数据存储

    在Android系统中,数据存储是应用程序管理用户数据和配置的关键环节。Android提供了多种方式来存储数据,以适应不同场景和需求。本节将详细介绍其中的Preference、File、SQLite数据库以及Content Provider这四种主要...

    Android Preference组件使用

    Android提供preference这个键值对的方式来处理这种情况,自动保存这些数据,并立时生效,同时Android提供一种类似的layout的方式来进行Preference的布局。 Preference组件有ListPreference,EditTextPreference,...

    安卓Android源码——Preference_Demo.rar

    5. **数据持久化**:Preference默认使用SharedPreferences进行数据持久化,每次用户更改设置,都会自动保存到 SharedPreferences 文件中,下次启动应用时,会自动恢复上次的设置状态。 6. **样式和主题**:可以通过...

    Android程序 preference应用

    本篇文章将深入探讨`Android程序 preference应用`,并结合一个注册案例来详细阐述如何在应用程序中使用Preference及其数据存储机制。 首先,`Preference`类是Android SDK中的一个关键组件,位于`android.preference...

    Android学习笔记 Preference的使用

    - `Preference`默认将数据保存在`SharedPreferences`中,这是一个轻量级的数据存储方式,用于保存键值对形式的简单数据,通常用于应用的配置或用户设置。 6. **自定义Preference**: - 如果标准的`Preference`...

    安卓Preference存储数据Demo

    本示例"安卓Preference存储数据Demo"将深入讲解如何在Android应用程序中使用Preference来存储联系人信息。 首先,Preference分为两种类型:XML定义的Preferences和编程式Preferences。在这个Demo中,我们可能看到了...

    android preference framework demo

    此DEMO内含基本的android preference framework的简单介绍,包括CheckboxPreference, RingtonePreference, EditTextPreference以及...主要探究了一下android 怎么通过使用preference从而达到对用户定制的数据进行保存。

    八、数据存储与访问 Android开发与实践

    - SharedPreferences是一种轻量级的持久化数据存储方式,常用于存储配置信息或者简单设置。 - 它允许开发者以键值对的形式(NVP:Name/Value Pair)保存数据,如字符串、整数、布尔值等。 - SharedPreferences...

    Android数据存储--SharedPreferences存储

    SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储少量简单的键值对数据,如配置设置、用户偏好等。在本篇博文中,我们将深入探讨如何使用SharedPreferences进行数据存储,并通过源码分析其...

    AndroidPreferenceDemo

    `SharedPreferences`是一个轻量级的数据存储机制,用于保存应用的简单配置数据,如布尔值、整数、浮点数、字符串等。当用户在`Preference`界面进行操作时,这些改变会被保存到`SharedPreferences`中,以便在应用下次...

    Android Preference

    - `SharedPreferences`是Android中用于持久化轻量级数据的类,常用来存储`Preference`的值。`Preference`会自动使用`SharedPreferences`来保存用户更改的设置。 - 当应用关闭或重启时,`Preference`会自动从`...

    preference 用法之Settings

    总结,`Preference`类在Android开发中扮演了至关重要的角色,它简化了设置界面的创建和管理,同时也提供了对用户设置数据的存储和恢复。通过理解`Preference`的用法和与其相关的组件,开发者能够高效地构建出用户...

    android实现ShowpreferencePre存储

    在Android开发中,数据存储是不可或缺的一部分,尤其是在处理用户设置或者临时数据时。"android实现ShowpreferencePre存储"这个话题主要关注的是如何利用Preference来保存和管理应用程序中的轻量级数据,例如用户的...

    Android数据存储与访问

    总结来说,Android数据存储与访问涵盖了多种技术,包括简单易用的SharedPreferences、灵活的文件存储、强大的SQLite数据库以及跨应用数据共享的ContentProvider。理解并掌握这些技术,对于Android开发来说至关重要,...

    自定义Preference

    - Android提供`SharedPreferences`来存储简单的键值对数据,通常用于存储`Preference`的状态。当`Preference`的值改变时,可以调用`SharedPreferences.Editor`的`apply()`或`commit()`方法来保存更改。 - `...

    ANDROID数据存储

    **SharedPreferences** 是Android提供的一种轻量级的数据存储机制,主要用于存储简单的小型数据,如用户设置、应用配置等。它以键值对(Name/Value Pair)的形式将数据保存在文件系统中,文件的格式通常是XML。...

    android中PreferenceActivity详解

    PreferenceActivity内部依赖于`SharedPreferences`进行数据存储。这是一种轻量级的存储方式,适合保存简单的键值对数据。当用户在设置界面对某项偏好做出更改时,这些更改会通过`SharedPreferences`以键值对的形式...

    Android学习笔记(四十):Preference的使用.doc

    总的来说,Android的Preference组件提供了一种简单、直观的方式来处理用户设置,使得开发者可以轻松地保存和恢复用户的偏好数据,同时提供了统一的界面风格。通过XML定义和Java代码的结合,我们可以构建出丰富的设置...

Global site tag (gtag.js) - Google Analytics