关闭

SharedPreferences

标签: SharedPreferenceandroid存储应用
207人阅读 评论(0) 收藏 举报

SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。
在Android系统中,ShredPreferences中的信息以XML文件的形式保存在 /data/data/PACKAGE_NAME/shared_prefs目录下。
SharedPreferences数据的四种操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入

package com.example.sharedpreference;

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

public class MainActivity extends Activity {

    private EditText et_name;
    private EditText et_pass;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_name=(EditText) findViewById(R.id.et_name);
        et_pass=(EditText) findViewById(R.id.et_pass);
        readAccount();//获取账号密码
    }

    private void readAccount() {
        //获取sharedpreference对象
        SharedPreferences sp=getSharedPreferences("info", MODE_PRIVATE);
        String name=sp.getString("name", "");
        String pass=sp.getString("pass", "");

        et_name.setText(name);
        et_name.setText(pass);
    }
    public void login(View v){
        //获取用户输入的账号密码
        String name = et_name.getText().toString();
        String pass = et_pass.getText().toString();

        CheckBox cb=(CheckBox) findViewById(R.id.cb);
        //判断选择框是否被选中
        if(cb.isChecked()){
            //获取sharedpreference对象
            SharedPreferences sf=getSharedPreferences("info", MODE_PRIVATE);
            //获取编辑器
            Editor ed = sf.edit();
            //写数据
            ed.putString("name", name);
            ed.putString("pass", pass);
            //提交
            ed.commit();
        }
        //显示toast对话框
        Toast.makeText(this, "登录成功", Toast.LENGTH_LONG).show();
    }

}
0
0
查看评论

SharedPreferences的存储位置和格式

public class SharedPreferencesTest extends Activity{ SharedPreferences preferences; SharedPreferences.Editor editor; public void onCreate(Bundle sa...
  • stven_king
  • stven_king
  • 2014-07-05 13:07
  • 2388

Android SharedPreferences源码分析

我们经常使用SharedPreferences保存一些简单的数据,比如Settings的数据。如果我们只是简单的使用,可能没什么问题,但是如果要用好它还是得明白它的实现方式,下面来从源码上来分析下SharedPreferences的缓存,异步读写实现,多线程,多进程访问。
  • xxx_zhi
  • xxx_zhi
  • 2016-07-18 23:53
  • 2874

SharedPreferences 详解(多进程,存取数组解决方案)

一、SharedPreferences基本概念 文件保存路径:/data/data//shared_prefs目录下目录下生成了一个SP.xml文件 SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。   实现Shared...
  • QQ774232122
  • QQ774232122
  • 2016-08-08 10:30
  • 839

Android Sharedpreferences清空的正确方法

在开发中有的时候会有一个退出登录的功能,需要做的就是把保存的一些东西给删除掉,我用的是sharedpreferences来保存的,所以我就想直接删除那个文件就好了,于是 public static void cleanSharedPreference(Context context) { ...
  • a_man_coder
  • a_man_coder
  • 2017-09-25 14:57
  • 438

SharedPreferences存储多种类型

SharedPreferences轻量级存储 public class SharedManager { String SHARE_NAME = "CUNCU";//文件名称 public static void saveUid(String uid) {  ...
  • DreamIsToHave
  • DreamIsToHave
  • 2016-07-22 11:06
  • 1885

Android开发:SharedPreferences 存储数据、获取数据

Android开发:SharedPreferences 存储数据、获取数据
  • chentravelling
  • chentravelling
  • 2016-04-10 20:12
  • 2865

Android下多进程访问SharedPreferences遇到的坑

最近项目中遇到了跨进程访问SharedPreferences的问题,当然在Android中并不建议用SharedPreferences,比较建议使用contentProvider或者aidl的方式来交互。 首先为了方便理解,暂时把两个应用分为Server端和client端 第一个问题就是想要跨进...
  • IT_Phoenix
  • IT_Phoenix
  • 2016-04-29 13:55
  • 2943

Android SharedPreferences工具类 ,实现List/Map的保存读取

封装SharedPreferences工具类,实现快速保存读取Integer,String,Float,Long,Boolean,Object以及List<Object>以及Map<String,Object>
  • a512337862
  • a512337862
  • 2017-06-23 13:26
  • 1549

关于SharedPreferences中无法改变Set的问题。

关于SharedPreferences中getStringSet无法改变Set的问题      最近在做android项目的时候,遇到一个很常见的需求,就是在动态的将历史输入记录,在autocompletetextview中输入框自动提示补全,由于是动态的,故...
  • solocdq
  • solocdq
  • 2015-08-01 22:04
  • 548

SharedPreferences 的四种存储权限

<br />import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; public class PermissionActivity exte...
  • meizhen51
  • meizhen51
  • 2011-03-22 22:25
  • 2761
    个人资料
    • 访问:12715次
    • 积分:372
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论