Android中SharedPreference详解及简单实例
发布时间 - 2026-01-11 03:24:08 点击率:次Android中SharedPreference详解

SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的方式存储,使得我们能很方便进行读取和存入。
SharedPreference 文件保存在/data/data/<package name>/shared_prefs 路径下(如/data/data/com.android.alarmclock/shared_prefs/com.android.text_preferences.xml),通过cat命令可以查看文件,如:
通过Activity自带的getSharedPreferences方法,可以得到SharedPreferences对象。
public abstract SharedPreferences getSharedPreferences (String name, int mode);
name:表示保存后 xml 文件的名称
mode:表示 xml 文档的操作权限模式(私有,可读,可写),使用0或者MODE_PRIVATE作为默认的操作权限模式。
1.数据读取:
通过SharedPreferences对象的键key可以获取到对应key的键值。对于不同类型的键值有不同的函数:
getBoolean,getInt,getFloat,getLong. public abstract String getString (String key, String defValue);
2.数据存入:
数据的存入是通过SharedPreferences对象的编辑器对象Editor来实现的。通过编辑器函数设置键值,然后调用commit()提交设置,写入xml文件。
public abstract SharedPreferences.Editor edit (); public abstract SharedPreferences.Editor putString (String key, String value); public abstract boolean commit ();
下面一个实例显示一个TextView,上面显示用户使用该应用的次数。
效果图如下:
源代码如下:
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"/>
</LinearLayout>
TestSharedPreferences.java:
package com.android.test;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;
public class TestSharedPreferences extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences mSharedPreferences = getSharedPreferences("TestSharedPreferences", 0);
// SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
int counter = mSharedPreferences.getInt("counter", 0);
TextView mTextView = (TextView)findViewById(R.id.textview);
mTextView.setText("This app has been started " + counter + " times.");
SharedPreferences.Editor mEditor = mSharedPreferences.edit();
mEditor.putInt("counter", ++counter);
mEditor.commit();
}
}
几点说明:
1.SharedPreferences的获取有两种方法:
一是上面提到的通过Activity自带(本质来讲是Context的)的getSharedPreferences方法,可以得到SharedPreferences对象。这种方法的好处是可以指定保存的xml文件名。
另一种是通过PreferenceManager.getSharedPreferences(Context)获取SharedPreferences对象。这种方法不能指定保存的xml文件名,文件名使用默认的:<package name>+"_preferences.xml"的形式,不过如果在一个包里面采用这种方式需要保存多个这样的xml文件,可能会乱掉。建议采用第一种指定xml文件名的形式。
2.数据的存入必须通过SharedPreferences对象的编辑器对象Editor来实现,存入(put)之后与写入数据库类似一定要commit。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# SharedPreference
# SharedPreference的使用方法
# SharedPreference引发ANR原理详解
# Android SharedPreferences性能瓶颈解析
# Android SharedPreferences四种操作模式使用详解
# Android通过SharedPreferences实现自动登录记住用户名和密码功能
# Android SharedPreferences实现记住密码和自动登录界面
# SharedPreference 初始化源码解析
# 键值
# 编辑器
# 自带
# 可以得到
# 来实现
# 这种方法
# 多个
# 如有
# 一是
# 希望能
# 几点
# 有两种
# 谢谢大家
# 很方便
# 第一种
# 不同类型
# 源代码
# 可以查看
# 数据存储
# 疑问请
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何在万网主机上快速搭建网站?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Python数据仓库与ETL构建实战_Airflow调度流程详解
高性能网站服务器配置指南:安全稳定与高效建站核心方案
,在苏州找工作,上哪个网站比较好?
如何在IIS中新建站点并配置端口与IP地址?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
网站优化排名时,需要考虑哪些问题呢?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Swift中循环语句中的转移语句 break 和 continue
怎样使用JSON进行数据交换_它有什么限制
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Linux系统命令中tree命令详解
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
企业网站制作这些问题要关注
iOS发送验证码倒计时应用
手机软键盘弹出时影响布局的解决方法
如何用AI帮你把自己的生活经历写成一个有趣的故事?
JavaScript如何操作视频_媒体API怎么控制播放
网站制作软件有哪些,制图软件有哪些?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
SQL查询语句优化的实用方法总结
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
如何快速打造个性化非模板自助建站?
Laravel如何实现一对一模型关联?(Eloquent示例)
iOS正则表达式验证手机号、邮箱、身份证号等
HTML 中如何正确使用模板变量为元素的 name 属性赋值
实例解析angularjs的filter过滤器
js实现点击每个li节点,都弹出其文本值及修改
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
北京的网站制作公司有哪些,哪个视频网站最好?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何在景安服务器上快速搭建个人网站?
高性价比服务器租赁——企业级配置与24小时运维服务
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
微信公众帐号开发教程之图文消息全攻略
简历没回改:利用AI润色让你的文字更专业
如何快速搭建个人网站并优化SEO?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
微信小程序 wx.uploadFile无法上传解决办法
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】

