当前位置: 代码迷 >> Android >> Android学习09-Android中数据的储存和访问 (1) By SharedPreferences
  详细解决方案

Android学习09-Android中数据的储存和访问 (1) By SharedPreferences

热度:124   发布时间:2016-05-01 13:19:17.0
Android学习09-----Android中数据的存储和访问 (1) By SharedPreferences

?

对于数据的存储操作而言,Android中一共提供了五种方式:SharedPerferences方式、文件存储方式、SQLite数据库存储、ContentProvider方式、网络存储;

SharedPerferences提供了一些基础的信息保存功能,所有的信息都是按照“key=value”的形式进行保存的,但是android.content.SharedPerferences接口所保存的信息只能是一些基本的数据类型,例如:字符串、整型、布尔型等。

SharedPerferences存储方式可以和Java中的Properties类进行比较,此类是属性的操作类,而且在属性文件之中只能保存基本的数据类型,而且属性文件更多的情况下是作为配置文件出现的,像Struts中的ApplicationResource.properties文件就是一个资源文件。

如果现在要想进行数据的写入,则必须首先通过SharedPerferences类所提供的edit()方法才可以让其处于可编辑的操作状态,此方法返回的对象类型是android.content.SharedPreference.Editor接口实例。

由于SharedPerferencesSharedPerferences.Edit两个都是接口,所以要想取得SharedPerferences接口的实例化对象,还需要Activity类中的几个常量和方法的支持。

No.

常量及方法

类型

描述

1

Public static final int MODE_PRIVATE

常量

创建的文件只能被一个应用程序调用,或者被具有相同id的应用程序访问

2

Public static final int MODE_WORLD_READABLE

常量

允许其他应用程序读取文件

3

Public static final int MODE_WORLD_WRITEABLE

常量

允许其他应用程序修改文件

4

Public SharedPerferences getSharedPerferences(String name,int mode)

普通

指定保存操作的文件名称,同时指定操作的模式,可以是0MODE_PRIVATEMODE_WORLD_READABLEMODE_WORLD_WRITEABLE

范例:

SharedPreferencesActivity.java

package com.iflytek.demo;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.widget.TextView;public class SharedPreferencesActivity extends Activity {	private static final String FILENAME = "iflytek"; // 保存的文件名称	private TextView authorinfo = null;	private TextView ageinfo = null;	/** Called when the activity is first created. */	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		save();		get();	}	private void save() {		SharedPreferences share = super.getSharedPreferences(FILENAME,				Activity.MODE_PRIVATE);		SharedPreferences.Editor edit = share.edit();		edit.putString("author", "xdwang");		edit.putInt("age", 23);		edit.commit();// 提交更新	}	private void get() {		this.authorinfo = (TextView) super.findViewById(R.id.authorinfo);		this.ageinfo = (TextView) super.findViewById(R.id.ageinfo);		SharedPreferences share = super.getSharedPreferences(FILENAME,				Activity.MODE_PRIVATE);		this.authorinfo.setText("作者:" + share.getString("author", "没有作者信息。"));		this.ageinfo.setText("年龄:" + share.getInt("age", 0));	}}

?

1、默认情况下,所有的配置文件都自动的保存在了一个系统文件夹之中。可以发现文件的后缀名为*.xml;

2、在实际的情况下,资源文件可以用来保存配置信息,例如,你正在看小说,希望关闭之后下次可以继续打开之前所关闭的进度点,那么在这种情况下,就可以利用此方式进行保存。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  相关解决方案