Android - Shared Preference (分享首选项) 详解

Shared Preference (分享首选项) 详解


本文地址: http://blog.csdn.net/caroline_wendy/article/details/24454963


本文的合集已经编著成书,《高级Android开发强化实战》,欢迎各位读友的建议和指导。

在京东即可购买:https://item.jd.com/12385680.html




Shared Preference将一组原始数据的NVP(name-value pair)存储为命名首选项(named preference).


创建SharedPreferences类使用getSharedPreferences(), 并传入要SharedPreferences的名称;


修改SharedPreferences类使用SharedPreferences.Editor类, 通过调用SharedPreferences类的edit()方法, 获取对象;

使用SharedPreferences.Editor类的put<type>()方法进行修改相关的名称(name)的值(value);

使用SharedPreferences.Editor类的apply()方法进行异步保存;

注意:保存可以使用apply()方法和commit()方法, 但是apply()方法是首选.

apply()方法是异步保存, commit()方法是同步保存, 需要阻止调用线程, 判断返回, 所以优先选择apply()方法.


访问SharedPreferences类, 使用getSharedPreferences()方法, 即与创建类似;

使用SharedPreferences类的get<type>()方法, 返回保存的值, 需要一个命名(name), 即键(key), 和一个默认值, 当没有值时使用默认.

使用SharedPreferences类的getAll()方法, 返回所有映射, 可以通过contains()方法, 返回boolean类型, 判断是否存在.


具体参考Android API: http://[防禁用]developer.android.com/guide/topics/data/data-storage.html


代码:

package mzx.spike.earthquake.app;

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

import java.util.Map;

/**
 * Created by Spike on 2014/4/25.
 */
public class Test extends Activity {
    public static final String MY_PREFS = "MyPrefs";

    @Override
    protected void onCreate(Bundle state){
        super.onCreate(state);

        // Restore preferences
        SharedPreferences mySharedPreferences = getSharedPreferences(MY_PREFS, Activity.MODE_PRIVATE);
        SharedPreferences.Editor editor = mySharedPreferences.edit();

        editor.putBoolean("isTrue", true);
        editor.putFloat("lastFloat", 1f);
        editor.putInt("wholeNumber", 2);
        editor.putLong("aNumber", 31);
        editor.putString("textEntryValue", "Not Empty");

        editor.commit();

        boolean isTrue = mySharedPreferences.getBoolean("isTrue", false);
        float lastFloat = mySharedPreferences.getFloat("lastFloat", 0f);
        int wholeNumber = mySharedPreferences.getInt("wholeNumber", 1);
        long aNumber = mySharedPreferences.getLong("aNumber", 0);
        String textEntryValue = mySharedPreferences.getString("textEntryValue", "");

        Map<String, ?> allPreferences = mySharedPreferences.getAll();
        boolean containsLastFloat = mySharedPreferences.contains("lastFloat");
    }
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ElminsterAumar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值