数据存储之SharedPreferences存储

一、SharedPreferences存储 

                           SharedPreferences 接口的常用方法
方法类型描述
public abstract SharePreferences.Editor edit()普通使其处于可编辑状态
public abstract boolean contains(String key)普通判断某一个key是否存在
pubic abstract Map<String ,?> getAll()普通取出全部的数据
public abstract getBoolean (String key,boolean defValue)普通取出boolean型数据,并指定默认值
public abstract float getFloat(String key,float defValue)普通取出float型数据,并指定默认值
public abstract int getFloat(String key,int  defValue)普通取出int型数据,并指定默认值
public abstract long getFloat(String key,long defValue)普通取出long型数据,并指定默认值
public abstract String  getFloat(String key,String  defValue)普通取出String型数据,并指定默认值

如果项进行数据的写入,则必须首先通过SharedPreferences类所提供的edit()方法才可以让其处于可编辑的操作状态,此方法返

回的对象类型是android.content.SharedPreferences.Editor接口实例。

              SharedPreferences.Editor接口的常用方法

方法类型描述
public abstract SharedPreferences.Editor clear()普通清除所有的数据
public abstract boolean commit()普通提交更新的数据
public abstract SharedPreferences.Editor putBoolean(String key,boolean value)普通保存一个boolean型数据
public abstract SharedPreferences.Editor putFloat(String key,float value)普通保存一个float型数据
public abstract SharedPreferences.Editor putInt(String key,int value)普通保存一个int型数据
public abstract SharedPreferences.Editor putLong(String key,long value)普通保存一个long型数据
public abstract SharedPreferences.Editor putString(String key,String value)普通保存一个String型数据
public abstract SharedPreferences.Editor remove(String key)普通删除指定key的数据
由于SharedPreferences和Sharedpreferences.Editor两个都是接口,所以要想取得SharePreferences接口的实例化对象,还需 要Activity类中的几个常量和方法的支持。

Activity类对SharedPreferences接口的支持

常量及方法类型描述
public static final int MODE_PRIVATE常量创建的文件只能被一个应用程序调用,或者被具有相同ID的应用程序访问
public static final int MODE_WORLD_READABLE常量允许其他应用程序读取文件
public static final int MODE_WORLD_WRITEABLE常量允许其他应用程序修改文件
public SharedPreferences getSharedPrederences(String name,int mode)常量指定保存操作的文件名称,同时指定操作的模式,设置的内容可以是0、MODE_PRIVATE、MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE
下面举个例子:

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;

public class MySharedPreferencesDemo extends Activity {

	private static final String FILENAME = "mldn"; // 保存的文件名称

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);

		SharedPreferences share = super.getSharedPreferences(FILENAME,
				Activity.MODE_PRIVATE);

		SharedPreferences.Editor edit = share.edit();
		edit.putString("author", "LiXingHua");
		edit.putInt("age", 30);
		edit.commit();// 提交更新
	}
}
数据的保存必须使用commit()方法

上面通过SharedPreferences进行了数据的保存,那么再利用SharedPreferences进行数据的读取。在进行数据读取时,可以直接利用getXxx()方法根据key进行读取,也可以getAll()方法将全部的数据按照Map集合的方式取出。

读取数据操作类:

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.TextView;

public class MySharedPreferencesDemo extends Activity {
	private static final String FILENAME = "mldn"; // 保存的文件名称
	
	private TextView authorinfo = null ;
	private TextView ageinfo = null ;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);
		
		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)) ;
	}
}

定义布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" 
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView 
		android:id="@+id/authorinfo"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" 
		android:textSize="22px"
		android:textColor="#FFFFFF" />
	<TextView 
		android:id="@+id/ageinfo"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" 
		android:textSize="22px"
		android:textColor="#FFFFFF" />
</LinearLayout>


最后讲一下保存的数据在哪里:

程序运行胡,所有数据保存在了mldn.xml文件中,但是该文文件保存在DDMS中,如果用户需要查看文件,可以选择Window->Open Perspective ->Other命令。

打开后选择File Explorer\data\data\<package name>\shared_prdfs\目录下就可以发现生成的mldn.xml文件,找到之后,可以单击DDMS工具栏中的Pull a file from the device 按钮,导出文件。

导出之后,可以直接通过记事本打开mldn.xml文件,文件内容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<map>
    <string name="author">LiXingHua</string>
    <int name="age" value="30"/>
</map>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值