Android 存储数据SharedPreferences详解

在Android应用开发中,需要经常保存一些用户对于自己软件的设置,所以,Android平台给我们提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置参数

SharedPreferences:
1、是一种轻型的数据存储方式
2、本质是基于XML文件存储key-value键值对数据
3、Android中常用来存储一些简单的配置文件

其实,SharedPreferences对象本身只能获取数据而不支持存储和修改,存储和修改是通过Editor对象实现的。

具体的实现步骤:

实现SharedPreferences存储步骤:
(1)获取SharedPreferences对象
    获取SharedPreferences对象的两种方法:
        1、使用Activity的getSharedPreferences()//这个方法也是比较常用的
        2、使用PreferenceManager中的getDefaultSharedPreferences()方法,不能自己定义XML文件名和文件权限。
(2)获取SharedPreferences.Editor对象(因为SharedPreferencesd对象不能直接进行存储,存储实现通过Editor对象实现)
(3)通过Editor接口的putXxxx方法保存
(4)通过Editor.commit提交//这个一定要记得,不然数据保存提交不上

这里我做了个简单的demo,就是两个Button一个存入数据,一个显示数据。
效果图:
这里写图片描述
这里写图片描述
源码如下:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initEvent();

    }

    /**
     * 初始化控件
     */
    private void initView() {
        logdata = (Button) findViewById(R.id.log_data);
        readdata = (Button) findViewById(R.id.read_data);
    }

    /**
     * 建立点击事件
     */
    private void initEvent() {
        logdata.setOnClickListener(this);
        readdata.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.log_data:
            putData();
            break;
        case R.id.read_data:
            getData();
            break;
        }

    }

    /**
     * 显示存入的记录
     */
    private void getData() {
        Toast.makeText(
                this,
                "名字是" + preferences.getString("name", "") + ",年龄是"
                        + preferences.getInt("age", 0), Toast.LENGTH_SHORT)
                .show();

    }

    /**
     * 通过按键存入数据
     */
    private void putData() {
        /*
         * SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,可以通过Context.
         * getSharedPreferences(String name,int mode)来得到一个SharedPreferences实例
         * name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data/<package
         * name>/shared_prefs下(这个面试常问到) mode:是指定读写方式,其值有三种,分别为:
         * Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写
         * Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写
         * Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。
         */
        preferences = getSharedPreferences("mydata", MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putString("name", "王五");
        editor.putInt("age", 20);
        // commit()提交
        editor.commit();
        Toast.makeText(this, "存入数据成功", Toast.LENGTH_SHORT).show();
    }

希望对初学者有帮助~~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值