Android sharedPreferences 用法
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 用法的更多相关文章
- Android SharedPreferences一般的读写 的用法。
Android SharedPreferences一般用于轻量级的数据存储,比如用户名和密码等. package com.lixu.testsharepreferences; import andro ...
- Android Meun 用法
Android Meun 用法 点击菜单实体键弹出菜单:如下图 main_activity.xml <?xml version="1.0" encoding="ut ...
- Android ViewPager 用法
Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...
- Android Intent 用法全面总结
[代码全屏查看]-Android Intent 用法全面总结 // [1].[代码] 调用拨号程序 跳至 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] / ...
- Android GLSurfaceView用法详解(二)
输入如何处理 若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...
- android SharedPreferences 使用
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值 对数据,通常用来存储一些简单的配置信息.其存储位置在/dat ...
- Android ScrollView用法
Android ScrollView用法 今天试着使用了一下Android的滚轮,以下是一个小小的测试,读取测试文件,主要是使用scrollTo函数和getScrollY(),程序点击BUTTON按钮 ...
- Android Service用法知识点的讲解
Android Service 学习Service相关知识点: android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务) ...
- Android Fragment用法知识点的讲解
Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...
随机推荐
- PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/50728536 本文出自[我是干勾鱼的博客] 使用PL/SQL developer ...
- JQM事件详解
在前文<使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础>中,Kayo 对 jQuery Mobile 事件的基 ...
- 【转】logstash配置java环境
1.bin/logstash,新增 JAVA_CMD=/home/admin/soft/jdk1.8.0_121/bin JAVA_HOME=/home/admin/soft/jdk1.8.0_121 ...
- Django 2 创建app
python manage.py startapp polls 创建model 创建完model以后使用 查看sql python manage.py sql polls 然后使用 python ma ...
- strerror和perror函数详解
/*#include <string.h> char *strerror(int errnum); 它返回errnum的值所对应的错误提示信息,例如errnum等于12的话,它就会返回&q ...
- signal基础
signal man 7 signal 1.kill -l 显示所有信号 kill -signal PID killall -signal name 2.产生信号 ctrl+c => SIGIN ...
- eclipse不能自动编译生成class文件的解决办法
最近在项目项目开发过程中遇到eclipse不能自动编译生成class文件,当时很纳闷,每次修改代码后运行都是修改前的效果,没辙了,只好反编译原来的class文件,结果发现,class文件里并没有看到修 ...
- SpringCloud架构设计
最近一直在针对SpringCloud框架做项目,从中踩了不少的坑,也渐渐梳理出了一些内容,由于SpringCloud作为一个全家桶,其中东西太多,所以这时候就要有所取舍,这里就想把自己比较常用组件及架 ...
- i2c 异常之i2c1 prob 检测超时
在没加atl 的fpga 时 i2c1上的tvp5150 vpss驱动加载没问题, 加了之后出现超时 I2C: timed out in wait_for_bb: I2C_IRQSTATUS=1000 ...
- jquery -- 同时监听多个事件
多个事件触发同一反应 $("#redrow").on("click touchend",function(){});//每个监听事件之间用 “空格” 隔开 多个 ...