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