Android 提供了一种数据轻量级的数据持久化方法。使用SharedPreferences 接口 将 key-value 形式的primitive data 存储到文件中。多用于保存软件偏好配置信息。

注意的几点:

1.存储内容:primitive data。(booleans, floats, ints, longs, and strings.)

2. 存储形式:key-value 键值对,存储到xml文件中。

使用的方法:

getSharedPreferences(String name, int mode)【或者 getPreferences()】 获得 SharedPreferences 对象。

读操作:

通过 SharedPreferences 对象 直接调用 getBoolean getInt 等等方法获取 。

写操作:

通过 SharedPreferences 获取 Editor 对象 ,适应Editor对象调用 putBoolean 等方法写文件。

SharedPreferences 的文件存储地址:/data/data/<packagename>/shared_prefs 目录下

实例:  用户登录界面的记住密码功能

public class MainActivity extends Activity {
EditText user_name, pass_word;
CheckBox rememberCheck;
Button btnlogin; // SharedPreferences setting;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user_name = (EditText) findViewById(R.id.etusername);
pass_word = (EditText) findViewById(R.id.etpassword);
rememberCheck = (CheckBox) findViewById(R.id.checkBox1);
btnlogin = (Button) findViewById(R.id.btnlogin); // 读取sharedpreference中的值
SharedPreferences sharepre = getSharedPreferences("data", MODE_PRIVATE); // 如果 data 文件不存在,创建一个
//String isCheckedStr = sharepre.getString("isChecked", "");
boolean isChecked = sharepre.getBoolean("isChecked", false); // 带默认值的
if(isChecked){
String username = sharepre.getString("username","");
String password = sharepre.getString("password", "");
user_name.setText(username);
pass_word.setText(password);
rememberCheck.setChecked(true);
}
// 登录事件响应
btnlogin.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SharedPreferences.Editor editor = getSharedPreferences(
"data", MODE_PRIVATE).edit();
if (rememberCheck.isChecked()) {
// 保存值到 sharedPreferences
editor.putBoolean("isChecked", true);
editor.putString("username", user_name.getText().toString());
editor.putString("password", pass_word.getText().toString()); }else{ editor.clear(); }
editor.commit(); Intent i = new Intent(MainActivity.this,SettingActivity.class);
startActivity(i);
}
}); }

 在 DDMS 的file explorer 中可以找到生成的 xml 文件:

 

Android sharedPreferences 用法的更多相关文章

  1. Android SharedPreferences一般的读写 的用法。

    Android SharedPreferences一般用于轻量级的数据存储,比如用户名和密码等. package com.lixu.testsharepreferences; import andro ...

  2. Android Meun 用法

    Android Meun 用法 点击菜单实体键弹出菜单:如下图 main_activity.xml <?xml version="1.0" encoding="ut ...

  3. Android ViewPager 用法

    Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...

  4. Android Intent 用法全面总结

    [代码全屏查看]-Android Intent 用法全面总结 // [1].[代码] 调用拨号程序 跳至 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] / ...

  5. Android GLSurfaceView用法详解(二)

    输入如何处理       若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...

  6. android SharedPreferences 使用

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值 对数据,通常用来存储一些简单的配置信息.其存储位置在/dat ...

  7. Android ScrollView用法

    Android ScrollView用法 今天试着使用了一下Android的滚轮,以下是一个小小的测试,读取测试文件,主要是使用scrollTo函数和getScrollY(),程序点击BUTTON按钮 ...

  8. Android Service用法知识点的讲解

    Android Service 学习Service相关知识点: android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务) ...

  9. Android Fragment用法知识点的讲解

    Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...

随机推荐

  1. Angular+Electron+VSCode的桌面应用

    Angular+Electron+VSCode的桌面应用 转自:http://blog.csdn.net/yr7942793/article/details/50986696 第一部分 Electro ...

  2. java中的类加载器ClassLoader和类初始化

    每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一 ...

  3. hdu1142(dj+记忆化搜索)

    题意:给你n各点,m行关于这些点的联通关系,以及距离,求从1这个点到2这个点之间,下一个点到2这个点比当前点到2这个点的距离要小的路径的条数...... 思路:dj+记忆化搜索....... #inc ...

  4. 如何利用wireshark对TCP消息进行分析

    原文:https://www.cnblogs.com/studyofadeerlet/p/7485298.html 如何利用wireshark对TCP消息进行分析   (1) 几个概念介绍 1 seq ...

  5. Delphi之Raise抛出异常

    相关资料: http://blog.csdn.net/a20071426/article/details/10160171 实例代码: unit Unit1; interface uses Windo ...

  6. Unix系统编程()改变信号处置:signal

    Unix系统提供了两种方法来改变信号处置:signal和sigaction.这篇描述的是signal系统调用,是设置信号处理的原始API,所提供的接口比sigaction简单.另一方面,sigacti ...

  7. 应有dataGridView控件

    using System.Data.SqlClient; namespace UseDataGridView { public partial class Form1 : Form { public ...

  8. js生成唯一的uuid

    ---恢复内容开始--- 在做项目的时候出现这样的一种情况,需要动态生成唯一的uuid,刚开始我的思路是这样的,我可以根据时间来做,然后出现了下面的思路: var uuid = "cms&q ...

  9. java访问属性

  10. 转载:CSS3图标图形生成技术个人攻略

    原始地址:http://segmentfault.com/a/1190000000481320 出处:http://www.zhangxinxu.com/wordpress/?p=4113