Android Preferences!

本文介绍了Android平台上的数据存储方式,包括SharedPreferences、文件存储和SQLite数据库等。重点讲解了SharedPreferences的使用方法及其API,如数据的读取、写入、更新和删除等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android数据存储、检索和共享
android有三种数据的保存技术:preference、本地文件、SQLite数据库。
SharePreference        当存储UI状态、用户preference或者程序设置的时候,可以使用轻量级的存储,一般的设置都是以键值存储的;
文件            android可以在设备的内部和外部介质创建和载入文件;
SQLite            需要进行结构化管理的方法;
内容提供器        它可以提供良好定义接口来使用和共享私有数据;
SharedPreferences:
用来保存的数据主要是类似于配置信息格式的数据,因此它保存的数据主要是简单类型的Key-Value对;其接口主要用来读取应用程序的Preferences数据,它提供了一些方法来访问Key-Value对:
contain(String key);    判断SharedPreferences是否包含key的数据;
abstract Map<String,?> getAll(); 获取SharedPerences数据里全部的key-value对;
getXxx(String key,xxx defValue);获取SharedPerence数据里指定Key对应的Value,值存储在defValue里;
SharedPreferences并没有写数据的能力,而是通过调用接口实现写数据,调用edit()获取Edit对象,他也提供了写数据:
SharedPreferences.Editor clear();清空SharedPerences里所有的数据;
SharedPreferences.Editor putXxx(String key,xxx Value);向SharedPerences中存入数据;
SharedPreferences.Editor remove(String key);删除SharedPerences里指定key对应的数据;
commit();当Editor编辑完后,调用该方法提交修改;
下面是具体的使用方法:
先从Activity中获得SharedPreferences,使用getSharedPreferences(string name,int mode);因为程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences()方法来获取;mode参数值是:
Context.Mode_PRIVATE:指定数据只能被应用程序读、写;
COntext.MODE_WORLD_READABLE:指定数据能被其他应用程序读;
Context.MODE_WORLD_WRITEABLE:指定数据能被其他应用程序读写;
那么名字就是用来在应用程序间使用的。

获得了SharedPreferences对象以后就可以对其中进行数据的编辑了,使用Editor来进行编辑:SharedPreferences.Editor edit=shre.edit();
获得了Editor对象,就可以写入数据了,使用putXxx(String key,xxx value);
之后就是保存修改了,调用用Editor的commit();
现在数据已经存储进了SharedPreferences里面了,那么要访问的话就使用getXxx(String key);方法;
下面是具体的使用,写数据和取数据例子:

!!下面是对本应用程序的操作!!
其包名是:org.creazyit.io
SharedPreferences preferences;
SharedPreferences.Editor editor;

prefernecs=getSharedPreferences("preferences",MODE_PRIVATE);
//写数据
editrot=preferences.edit();
editor.putString("1","one");
editor.putInt("2",12);
editor.commit();
//读数据
String one=preferences.getString("1",null);
int two=preferences.getInt("2",0)

;

!!下面是读写其他应用程序的SharedPreferences!!
要读写其他应用程序的SharedPerferences,前提是创建SharedPreferences的应用程序访问权限,就是mode参数;为了读取其他应用程序的SharedPreferences数据,步骤如:
1、创建其他应用程序对应的Context;
Context use=createPackageContext("org.creazyit.io"/*这里是包名*/,Context.CONTEXT_IGNORE_SECURITY);
2、调用其他应用程序的Context的getSharedPreferences(String name,int mode)即可获得相应的SharedPreferences对象;
3、如果需要写数据,那么可以使用edit()方法;
所以这里的访问其他应用程序,那就是必须活动它的SharedPreferences对象;如:
Context use=createPackageContext("org.creazyit.io",Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences preferences=use.getSharedPreferences("preferences",Context.MODE_WORLD_READABLE);
//获取数据//
String one=preferences.getString("1",null);
int two=preferences.getInt("2",0);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值