zoukankan      html  css  js  c++  java
  • Android(java)学习笔记117:SharedPreferences(轻量级存储类)

    1.SharedPreferences是Android平台上一个轻量级的存储类,简单的说就是可以存储一些我们需要的变量信息。2个activity 之间的数据传递除了可以他通过intent来传递数据,还可以使用SharedPreferences来共享数据的方式。SharedPreferences生成的是xml文件

        SharedPreferences 用法很简单,如果你想要编辑SharedPreferences中的内容就需要用到Editor对象

    2.下面使用一个案例来进一步理解SharedPreferencesEditor

    (1)下面以一个登陆界面的设计为例,分析其和SharedPreferences有关代码,设计简单的界面如下图所示。

    (2)下面这个方法可以实现保存用户名和密码,数据存放很像Map集合,以键值对的方式存放。关键代码:

      SharedPreferences sp = this.getSharedPreferences("config", MODE_PRIVATE)其中"config"文件名(可以自己命名),MODE_PRIVATE为文件的权限(这里是私有文件);

      Editor editor = sp.edit()获得编辑这个文件的编辑器;  

      editor.putString("username", str_username);利用编辑器编辑内容;

      editor.commit()调用这个方法提交保存数据。

    附加备注:

    Context.MODE_PRIVATE为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND

    Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件

    Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

    MODE_WORLD_READABLE:表示当前文件可以被其他应用读取

    MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入

    (3)下面这个方法可以实现读取出存放的数据,通过键得到值,并且知道填充到对应的编辑框。关键代码只有两句:

    SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE)其中"config"文件名MODE_PRIVATE为文件的权限

    String str_username = sp.getString("username", "")和String str_password = sp.getString("password", "")都是取出对应的数据

    (4)分析:创建对象时有到getSharedPreferences(name, mode)方法,参数name其实是文件名,mode其实是文件权限。这个文件是自动生成的一个xml文件:

    (5)可以打开这个xml文件文件,或者有adb shell cat查看这个文件内容,可见用这种方法特殊字符也是可以存放的。

     3. SharedPreferences使用步骤
    >用来保存用户的配置信息和简单的数据步骤
            1. 声明 SharedPreferences sp; 
            2. 初始化 sp = this.getSharedPreferences("文件名", 0);//0代表的是私有
            3. 获取sp的编辑器 Editor editor = sp.edit();
            4. 存储数据 editer.putString() putBoolean putLong
            5. 最后一步重要,一定要记得commit() 数据才被保存

    代码案例:
    package com.itheima.setting;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.view.Menu;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.CompoundButton.OnCheckedChangeListener;
    import android.widget.Toast;
    public class MainActivity extends Activity {
        
        //方便的数据保存的api 生成一个xml文件用来保存数据
        SharedPreferences sp; 
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //config 是文件名 0 访问模式私有
            sp = this.getSharedPreferences("config", 0);
            CheckBox cb = (CheckBox) findViewById(R.id.cb);
            //回显数据
            boolean status = sp.getBoolean("status", false);//第一个是key 第二个参数是默认值
            cb.setChecked(status);
            cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    Toast.makeText(MainActivity.this, "勾选状态:"+isChecked, 0).show();
                    //获取编辑器i
                    Editor editor = sp.edit();
                    editor.putBoolean("status", isChecked);
                    editor.commit();//数据库的事务 ,提交数据。把数据保存起来
                }
            });
        }
    }
  • 相关阅读:
    windows查看端口命令
    lombok
    Linux之文档与目录结构 目录的相关操作 Linux的文件系统
    VMware与Centos系统安装 和重置root密码
    shell 基本命令
    centos 安装教程 服务器配置教程 服务器中安装python 服务器中安装Django 安装MySQL 配置MySQL
    {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm
    {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证
    {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session
    老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4741507.html
Copyright © 2011-2022 走看看