SharedPreferences是使用键值对的方式来存储数据。

要想使用SharedPreferences来存储数据,必须获取SharedPreferences对象,获取SharedPreferences对象的方法。


Context.getSharedPreferences( )


Activity.getPreferences( )


PreferenceManager.getDefaultSharedPreferences( )


方式:

1、获取SharedPreferences对象

2、通过SharedPreferences对象的edit( )方法获取SharedPreferences.Editor对象

3、向SharedPreferences.Editor对象中添加数据

4、使用commit( )方法提交数据


package com.example.sharedprferencestest;

import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;

public class MainActivity extends Activity implements View.OnClickListener{

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);

        Button save_btn = (Button)findViewById(R.id.save_button);        save_btn.setOnClickListener(this);    }

    @Override    public void onClick(View v) {

        SharedPreferences sharedPreferences = getSharedPreferences("data2",MODE_PRIVATE);        SharedPreferences.Editor editor = sharedPreferences.edit();        editor.putString("用户名","wz");        editor.putString("密码","root");        editor.putBoolean("是否保存密码",false);        editor.commit();    }}


package com.example.sharedprferencestest;

import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;

public class MainActivity extends Activity implements View.OnClickListener{

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);

        Button save_btn = (Button)findViewById(R.id.save_button);        save_btn.setOnClickListener(this);

        Button restore_btn =(Button)findViewById(R.id.restore_button);        restore_btn.setOnClickListener(this);    }

    @Override    public void onClick(View v) {

        SharedPreferences sharedPreferences = getSharedPreferences("data2", MODE_PRIVATE);        switch(v.getId()){            case R.id.save_button:                SharedPreferences.Editor editor = sharedPreferences.edit();                editor.putString("用户名","wz");                editor.putString("密码", "root");                editor.putBoolean("是否保存密码", false);                editor.commit();                break;            case R.id.restore_button:                String username = sharedPreferences.getString("用户名",null);                String password = sharedPreferences.getString("密码",null);                boolean hint = sharedPreferences.getBoolean("是否改变密码", false);                Toast.makeText(getApplicationContext(),username,Toast.LENGTH_SHORT).show();                break;            default:                break;        }

    }}

记住密码案例
package com.example.account;

import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity implements View.OnClickListener{

    private Button btn;    private EditText account;    private EditText password;    private CheckBox rememberPassword;

    private SharedPreferences sharedPreferences;    private SharedPreferences.Editor editor;

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);

        account = (EditText)findViewById(R.id.account);        password = (EditText)findViewById(R.id.password);        btn = (Button)findViewById(R.id.login);        rememberPassword = (CheckBox)findViewById(R.id.remember_password);

        sharedPreferences = getSharedPreferences("login", MODE_PRIVATE);        editor = sharedPreferences.edit();

        boolean isRemember = sharedPreferences.getBoolean("isRemember",false);

        if(isRemember){            String username = sharedPreferences.getString("account","");            String pwd = sharedPreferences.getString("password","");            account.setText(username);            password.setText(pwd);            rememberPassword.setChecked(true);        }

        btn.setOnClickListener(this);

    }

    @Override    public void onClick(View v) {

        switch (v.getId()){            case R.id.login:                String accountContent = account.getText().toString();                String passwordContent = password.getText().toString();                if(accountContent.equals("root") && passwordContent.equals("root")){                    if(rememberPassword.isChecked()){                        editor.putString("account",accountContent);                        editor.putString("password",passwordContent);                        editor.putBoolean("isRemember",true);                    }else{                        editor.clear();                    }                    editor.commit();                    Intent intent = new Intent();                    intent.setClass(MainActivity.this,LoginSuccess.class);                    startActivity(intent);                    finish();                }else{                    Toast toast = Toast.makeText(MainActivity.this,"account or password is invalid",Toast.LENGTH_SHORT);                    toast.show();                }                break;            default:                break;        }    }}

Android数据持久化技术 — — —SharedPreferences的更多相关文章

  1. Android数据持久化技术 — — —文件存储

    文件保存 package com.example.datastroredtest; import android.app.Activity;import android.os.Bundle;impor ...

  2. Android数据存储-通过SharedPreferences实现记住密码的操作

    在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ...

  3. Android数据存储技术

    Android提供了4种数据存储技术,分别是SharedPreferences.Files.SQLite数据库和网络存储数据.(有的开发者认为使用ContentProvider也可以算是一种,但我觉得 ...

  4. Android数据存储方式--SharedPreferences

    Android数据存储方式有如下四种:SharedPreferences.存储到文件.SQLite数据库.内容提供者(Content provider).存储到网络服务器. 本文主要介绍一下Share ...

  5. Android数据存储之SharedPreferences存储

    安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...

  6. Android 数据存储之 SharedPreferences储存

    ------------------------------------------SharedPreferences存储--------------------------------------- ...

  7. Android数据存储之sharedpreferences与Content Provider

    android中对数据操作包含有: file, sqlite3, Preferences, ContectResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序 ...

  8. Android数据存储三剑客——SharedPreferences、File、SQLite

    Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...

  9. iOS中常用的四种数据持久化技术

    iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults st ...

随机推荐

  1. HTML5 学习笔记(三)——本地存储

    目录 一.HTML4客户端存储 1.1.提交表单发送到服务器的信息 1.2.客户端本地存储概要 二.localStorage 2.1.添加 2.2.取值 2.3.修改 2.4.删除 2.5.跨页面与跨 ...

  2. lua 时间戳和时间互转

    1.时间戳转换成时间 local t = 1412753621000 function getTimeStamp(t)     return os.date("%Y%m%d%H", ...

  3. MongoDB学习比较-07 C#驱动操作MongoDB

    下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...

  4. ObjectQuery查询及方法

    ObjectQuery 类支持对 实体数据模型 (EDM) 执行 LINQ to Entities 和 Entity SQL 查询.ObjectQuery 还实现了一组查询生成器方法,这些方法可用于按 ...

  5. 获取json对象长度

    JSON对象变化万千,非常灵活,对应的获取方法分别为: 1.最简单类型的(myObject是对象,不是字符串哦) <script type="text/javascript" ...

  6. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  7. String [] 转 List&lt;String&gt;

    整理笔记:String [] 转 List<String> String [] al = new String[]{"1","q","a& ...

  8. (二)初探Maven之设置代理和阿里云镜像

    引言:           在许多公司,可能因为安全性的要求配置了代理服务器,用户无法直接访问外网,所以在项目中使用Maven必须设置好代理才能下载依赖.           并且直接从中央仓库下载依 ...

  9. 你真的了解PeopleSoft中的function和method方法嘛

    谈下function和method在内嵌与外部传参的区别 1.内嵌函数(Internal Functions) 看下现在输出&x的话会返回什么值? 2.内嵌函数(Internal Functi ...

  10. Linux系统编程——fcntl

    fcntl可实现对指定文件描述符的各种操作,其函数原型如下: int fcntl(int fd, int cmd, ... /* arg */ ); 头文件 #include <unistd.h ...