- 浏览: 829679 次
- 性别:
- 来自: 哈尔滨
文章分类
最新评论
-
doloveme:
$sudo cp MONACO_Linux.ttf /usr/ ...
terminator 的配置 -
腾讯rep:
lowser
RSA加密算法c++简单实现 -
csuhanyong:
好YD啊,好YD
一图流:机械键盘各轴区别 -
doloveme:
1。其中:extman ,extmail下载http://ww ...
Ubuntu下安装postfix+extmail邮件服务器 -
doloveme:
repo sync出现“fatal: '../platform ...
Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA
在Android开发过程中,有时候我们需要保存一些简单的软件配置等简单数据的信息,而如果我们直接用数据库存储的话又不太方便,在这里我们就可以用到SharedPreferences,SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此保存的数据主要是简单类型的键值对(key-value),它保存的是一个XML文件。
SharedPreferences常用的属性和方法
方法名称 |
描述 |
public abstract boolean contains (String key) |
判断SharedPreferences是否包含特定key的数据 |
public abstract SharedPreferences.Editor edit () |
返回一个Edit对象用于操作SharedPreferences |
public abstract Map<String, ?> getAll () |
获取SharedPreferences数据里全部的key-value对 |
getXXX(String key,XXX defvlaue) |
获取SharedPreferences数据指定key所对应的value,如果该key不存在,返回默认值defValue。其中XXX可以是boolean、float、int、long、String等基本类型的值 |
由于SharedPreference是一个接口,而且在这个接口里并没有提供写入数据和读取数据的能力。但是在其内部有一个Editor内部的接口,Edit这个接口有一系列的方法用于操作SharedPreference。
Editor接口的常用方法
方法名称 |
描述 |
public abstract SharedPreferences.Editor clear () |
清空SharedPreferences里所有的数据 |
public abstract boolean commit () |
当Editor编辑完成后,调用该方法可以提交修改,而且必须要调用这个数据才修改 |
public abstract SharedPreferences.Editor putXXX (String key, boolean XXX) |
向SharedPreferences存入指定的key对应的数据,其中XXX可以是boolean、float、int、long、String等基本类型的值 |
public abstract SharedPreferences.Editor remove (String key) |
删除SharedPreferences里指定key对应的数据项 |
SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,可以通过Context.getSharedPreferences(String name.int mode)来得到一个SharedPreferences实例
name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data/<package name>/shared_prefs下(这个面试常问到)
mode:是指定读写方式,其值有三种,分别为:
Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写
Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写
Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。
实例:用SharedPreferences进行简单的操作
- package com.jiahui.preferences;
- import android.app.Activity;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- public class SharedPreferencesDemoActivity extends Activity {
- private SharedPreferences sharedPreferences;
- private SharedPreferences.Editor editor;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- sharedPreferences = this.getSharedPreferences("test",MODE_WORLD_READABLE);
- editor = sharedPreferences.edit();
- final EditText edtName = (EditText) this.findViewById(R.id.edtName);
- final EditText edtAge = (EditText) this.findViewById(R.id.edtAge);
- Button btnRead = (Button) this.findViewById(R.id.btnRead);
- Button btnWrite = (Button) this.findViewById(R.id.btnWrite);
- btnRead.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // 如果没有这个key就以默认值
- String name = sharedPreferences.getString("name", null);
- int age = sharedPreferences.getInt("age", 0);
- edtAge.setText(String.valueOf(age));
- edtName.setText(name);
- }
- });
- btnWrite.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String name = edtName.getText().toString();
- int age = Integer.parseInt(edtAge.getText().toString());
- editor.putInt("age", age);
- editor.putString("name", name);
- // 一定要提交
- editor.commit();
- }
- });
- }
- }
实现效果:
用File Explorer可以查看在data/data/com.jiahui.preferences/shared_prefs/下多了一个XML文件
将XML文件导出我们可以看到在这个XML文件里存储了以下内容:
- <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
- <map>
- <int name="age" value="20" />
- <string name="name">jiahui</string>
- </map>
读写其他应用SharedPreferences
在有时的开发过程中,我们可能要访问其他的应用程序的SharedPreferences,要实现这样的功能,我们必须要保证要访问的那个应用程序的SharedPreferences的访问权限要是MODE_WORLD_READABLE,这表明该SharedPreferences可以被其他应用程序读取,如果指定的MODE_WORLD_WRITEABLE表明该SharedPreferences可以被其他应用程序读取写入其实现思路如下
1、 获得其他应用程序对应的Context
2、 通过这个Context得到这个应用程序的SharedPreferences,然后再利用这个SharedPreferences读取内容
以上一例的SharedPreference为例。实现代码:
- package com.jiahui.preferences2;
- import android.app.Activity;
- import android.content.Context;
- import android.content.SharedPreferences;
- import android.content.pm.PackageManager.NameNotFoundException;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- public class SharedPreferencesDemo02Activity extends Activity {
- private Button btnRead;
- private EditText edtResult;
- Context otherContext;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- try {
- // 获取其他应用程序的Context
- otherContext = createPackageContext("com.jiahui.preferences",
- CONTEXT_IGNORE_SECURITY);
- } catch (NameNotFoundException e) {
- e.printStackTrace();
- }
- edtResult = (EditText) this.findViewById(R.id.edtResult);
- btnRead = (Button) this.findViewById(R.id.btnRead);
- btnRead.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // 获取其他应用程序的SharedPreferences
- SharedPreferences preferences = otherContext
- .getSharedPreferences("test",
- Context.MODE_WORLD_READABLE);
- String name = preferences.getString("name", null);
- int age = preferences.getInt("age", 0);
- edtResult.setText("访问的结果为:姓名:" + name + "年龄:" + age);
- }
- });
- }
- }
实现效果:
SharedPreferences的注意事项:
编辑完SharedPreferences一定要记得调用Editor的commit()方法,否则不会将数据写入到文件里的。
回顾总结:
1、 如何得到SharedPreferences
SharedPreferences preferences=getPreferences(“test”,MODE_PRIVATE);
2、 如何编辑SharedPreferences
得到Editor对象实例
SharedPreferences.Editor editor=preferences.editor();
3、 SharedPreferences的存储位置
/data/data/<package name>/shared_prefs
from : http://blog.csdn.net/jiahui524/article/details/6971662
发表评论
-
JAVA代码混淆
2016-05-05 18:24 1453JAVA代码混淆 <!--[if !supportL ... -
android 监听状态栏被下拉
2015-12-25 17:23 3478Activity的onWindowFocusChange()方 ... -
android使用mount挂载/system/app为读写权限,删除或替换系统应用
2015-11-27 14:13 4030注意:以下代码中#开头的则为需要执行的shell命令,其他的 ... -
Ubuntu 14.04 文件服务器--samba的安装和配置
2015-11-10 10:49 640jingyan.baidu.com/album/00a07f ... -
linux生成指定大小的文件
2015-08-26 16:02 1698# dd if=/dev/zero of=50M.file ... -
intellij 打开工程在每个java文件上 有个红色的无效符
2015-07-24 13:52 1757说明该类不是可编译文件。在project Structure中 ... -
logcat命令详解
2015-07-22 16:34 985Android日志系统提供了记录和查看系统调试信息的功能。日 ... -
gradle打包遇到的错误汇总
2015-07-21 11:32 0错误1:A problem occurred ... -
SpringMVC入门
2015-07-02 18:23 764目录 介绍 实例 总结 参考资料 介绍 Sp ... -
Android读写XML(下)——创建XML文档
2015-04-29 11:02 618在前面的2篇文章Android读写XML(上)—— pack ... -
Android读写XML(中)——SAX
2015-04-29 10:54 625在Android读写XML(上) ... -
Android读写XML(下)——创建XML文档
2015-04-29 10:52 705在前面的2篇文章Android读写XML(上)—— pack ... -
android:configChanges locale 改语言后,该配置不起作用的原因
2015-03-23 14:38 2518@Override public void on ... -
android.app.Fragment$InstantiationException 解决办法
2015-03-23 13:46 1415android.app.Fragment$Instantia ... -
linux 查看内存
2015-02-10 13:08 7471、free监控内存使用情况 #free 2、watc ... -
android fastboot 刷机 指令
2015-01-19 18:31 1531原生bootloader:bootloader-gro ... -
[Android实例] android中进行https连接的方式的详解 (转发)
2015-01-09 15:50 699x 如果不需要验证服务器端证书, ... -
编译android源码apk是否生成odex方法
2014-10-20 17:19 1649其实Android系统默认的配置是,如果没有指定DISABL ... -
关于android源码中的APP编译时引用隐藏的API出现的问题
2014-10-20 15:36 844今天在编译android源码中的计算器APP时发现,竟然无法 ... -
Android系统进程Zygote启动过程的源代码分析
2014-09-17 10:09 506在Android系统中, ...
相关推荐
在Android开发中,SharedPreferences通常用于存储轻量级的数据,如用户偏好设置,这些数据通常是简单的键值对形式。然而,SharedPreferences并不直接支持存储复杂的数据结构,比如List集合。但通过一些技巧,我们...
在Android开发中,SharedPreferences是用于存储轻量级数据的一个重要工具。它主要用于保存应用程序的配置信息或者用户的一些简单设置,如开关状态、首选项等。这些数据以键值对的形式存在,支持基本数据类型,如布尔...
【Android中的DataStore替代SharedPreferences】 Android开发者们长期以来一直依赖SharedPreferences作为轻量级的数据存储解决方案,它的简单易用性使其在小规模数据存储方面受到了广泛欢迎。然而,随着应用程序...
SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序的简单配置信息,如布尔值、整型、浮点型、字符串等基本类型及其数组。通常,SharedPreferences数据是私有的,即每个应用只能...
**Android中的SharedPreferences** SharedPreferences是Android系统提供的一种轻量级的数据存储机制,主要用于应用程序保存简单的配置信息,如用户设置、应用状态等。它采用键值对(key-value pairs)的形式存储...
在Android开发中,SharedPreferences是一个轻量级的数据存储方式,常用于保存应用的配置信息或用户设置,如登录状态、主题颜色、用户偏好等。在这个场景中,我们将详细探讨如何使用SharedPreferences来设置和修改...
在Android开发中,SharedPreferences是一个轻量级的数据存储机制,用于保存和读取少量的基本数据类型,如字符串、整型、布尔值等。它非常适合用来存储应用程序的配置信息或用户偏好设置,因为这些数据通常不需要复杂...
Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...
最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现。 SharedPreferences简介 SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value...
在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户偏好设置、应用程序的状态等。它是一个键值对的存储系统,支持基本数据类型,如布尔型、...
在Android开发中,SharedPreferences是一个轻量级的数据存储方式,用于保存应用中的小量、简单的数据,如用户设置、应用状态等。它提供了键值对(key-value pairs)的存储,支持基本数据类型如布尔型、整型、浮点型...
SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序中的简单配置数据,如布尔值、整型、浮点型、字符串等基本类型及其数组。然而,原生的SharedPreferences并不支持直接存储复杂...
SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序中的配置信息或者简单的数据,如用户设置、应用状态等。它使用XML文件来持久化数据,并提供了方便的API供开发者进行读写操作。...
在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户设置、登录状态等。在这个“android studio 利用SharedPreferences实现自动登录”的主题...
在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户偏好设置、应用程序的状态等。标题"sharedpreferences存储多个用户"提示我们需要探讨如何...
在Android开发中,SharedPreferences是应用保存轻量级配置数据的常用工具。它提供了一种简单的方法来存储和读取键值对(key-value pairs),通常用于保存用户偏好设置或者简单的应用状态。这篇博客将深入探讨...