一、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>