android上如何写配置文件

2023-05-16

android上如何写配置文件:使用SharedPreferences

SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。SharedPreferences提供了java常规的Long、Int、String等类型数据的保存接口。 SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问。提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好

通过SharedPreferences可以保存程序的某些配置信息,而程序员不需要知道它到底以什么形式保存的,保存在了什么地方。

在Android系统中,SharedPreferences中的信息以XML文件的形式保存在 /data/data/PACKAGE_NAME/shared_prefs目录

获取SharedPreferences的两种方式:

1 调用Context对象的getSharedPreferences()方法

2 调用Activity对象的getPreferences()方法

两种方式的区别:

调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.

调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.

SharedPreferences的四种操作模式:

Context.MODE_PRIVATE

Context.MODE_APPEND

Context.MODE_WORLD_READABLE

Context.MODE_WORLD_WRITEABLE

 

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.

MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.

MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

例子:

将数据保存至SharedPreferences:

SharedPreferencespreferences=getSharedPreferences("user",Context.MODE_PRIVATE);

Editor editor=preferences.edit();

String name="xixi";

String age="22";

editor.putString("name", name);

editor.putString("age", age);

editor.commit();

 

从SharedPreferences获取数据:

SharedPreferencespreferences=getSharedPreferences("user", Context.MODE_PRIVATE);

Stringname=preferences.getString("name", "defaultname");

Stringage=preferences.getString("age", "0");

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android上如何写配置文件 的相关文章

  • Android 版 KSOAP2 提供

    我正在尝试访问 WSDL 位于的 Web 服务http srilanka lk 9080 services CropServiceProxy wsdl http srilanka lk 9080 services CropServicePr
  • 数据未正确加载到 Firebase 应用程序中

    我在 android studio 上使用 firebase 创建了一个应用程序 使用移动 otp 进行身份验证后会出现一个搜索视图 当用户在搜索视图上搜索时 它将过滤结果并转到回收器视图等 第一次启动活动 即身份验证后的家庭活动 应用程序
  • 插入耳机时有什么方法可以强制音频通过扬声器吗?

    我已经尝试过推荐的 setSpeakerphoneOn true 以及不推荐的 AudioSystem setForceUse AudioSystem FOR MEDIA AudioSystem FORCE SPEAKER 但两者都不起作用
  • Flutter - 使用 Android 下载指示器下载文件

    我正在尝试下载邮件系统的附件 为此 我正在使用颤振下载器 https pub dartlang org packages flutter downloader但我需要通过我的 http 客户端传递我的令牌 我认为这个插件没有处理这个问题 我
  • 如何在eclipse中打开项目

    我下载了 LISTView 教程的 zip 文件 其中包含所有文件 但我不知道如何在 Eclipse 中打开它 因为它只是打开文件 而不是整个项目 我从这里下载的 http mfarhan133 wordpress com 2010 10
  • adb shell:无法使用 ESCAPE 键

    I want to use vi when running adb shell Starting vi is easy However I found that the ESC key doesn t seem to get through
  • 将 gradle-tool 更新到 3.1.0-beta3 或 3.2.0-alpha03 后出现新错误

    只是一个具有 prod 和 mock 风格的普通项目 在应用程序 build gradle中 sourceSets main java srcDirs blabla bla test java srcDirs blabla bla andr
  • 设备管理员禁用

    如果不是 则无法卸载设备管理应用程序 禁用 用户可以从设置中禁用 设备管理员 当公司向员工提供 Android 设备时 公司希望 可以控制设备及其状态和策略 但用户可以 轻松摆脱这种控制 有谁知道这怎么可能 防止用户禁用设备管理员 谢谢 无
  • 等待设备时出错:AVD 的模拟器进程 .... 已被终止

    我是Andriod开发的新手 在运行该应用程序时遇到了一个奇怪的问题 如下图所示 我也google了一下 但没有找到有用的答案 谁能告诉我我能做什么 gt 我找到了这个 只需转到这个目录 cd ANDROID HOME Sdk emulat
  • 如何在Android Studio中授予对registry.bin的访问权限?

    每当我打开 Android Studio 3 0 1 时 Gradle 构建都会失败 错误如下所示 它以前工作正常 我不记得对其设置进行过任何更改 不过 现在已经不会再继续下去了 请帮忙 我被困住了 关闭 Android Studio 并尝
  • 我在 Android studio 中遇到错误

    在此输入图像描述 https i stack imgur com bvqID png我是安卓新手 我刚刚在 android studio 中创建了一个项目 并且在它的中遇到了问题manifest xml 错误是在 android icon
  • Android - 检测电容式触摸屏上的触摸压力?

    我听说过 MotionEvent e float press e getPressure 但这只会在没有触摸时返回 0 当我的手指触摸屏幕时返回 1 是否可以找到手指在触摸电容屏上施加的压力值 或者我的预感是否正确 即这只适用于电阻屏幕 M
  • 通过蓝牙将字符串从作为客户端的 PC 发送到作为服务器的移动设备

    我需要通过蓝牙将字符串从 PC 传输到 Android 移动设备的帮助 Android 移动设备应充当服务器并在设备屏幕上显示字符串消息 作为客户端的 PC 应该将字符串发送到移动设备 我希望服务器对提取的字符串 通过蓝牙传输 做出反应 这
  • 解析dev/input/event触摸事件

    我能够在 Android 手机上从 dev input event 读取事件 然而 它们是按一定顺序排列的行代码 就像触摸事件给出的那样 3 53 216 3 54 444 3 48 40 3 50 5 0 2 0 0 0 0 如何将它们解
  • 单击任何 EditText 时屏幕向上滚动

    我有一个屏幕 有 4 个编辑文本 如菜单名称 菜肴名称 标签和价格 我需要在单击它时将我的标签 Edittext 设置为顶部 56dip 现在一切正常 当我单击标签 EditText 时 它会像我想要的那样向上移动 我卡在哪里 向上移动布局
  • 发布包含下划线 (_) 的 url

    我发布的 url 参数包含下划线 sample http sdsdsds asasasahjhd com dsdsdsd login json 我这样发布 HttpClient httpclient new DefaultHttpClien
  • 如何在 Android 上重复使用 AlertDialog 来表示是/否?

    我正在尝试找到重用显示自定义标题的对话框的方法 然后将 是 否 单击发送到启动该对话框的函数 我有两个按钮 保存 和 关闭 两者都调用 是 否 对话框 一个显示 您要保存 另一个显示 关闭更改吗 我认为我的程序非常 脏 但我想它可以工作 但
  • Android 7 GraphicBuffer 替代方案,用于直接访问 OpenGL 纹理内存

    从移动设备具有 CPU 和 GPU 共享内存这一事实中获利的唯一方法是使用GrphicBuffer 但由于 Android 7 限制对私有本机库 包括 gralloc 的访问 因此无法再使用它 问题 是否有其他方法可以直接内存访问纹理的像素
  • Android 浏览器缩放?

    我正在尝试为 Android 创建一个移动网站 当我将主体宽度设置为 480px 屏幕宽度 时 结果比我预期的大 50 左右 看来 android 正在缩放它所绘制的内容并弄乱了我所有的布局 有谁知道如何禁用它或解决它 我已经在使用这个 您
  • 无法解析配置“:app:debugRuntimeClasspath”的所有文件。在 android studio Chipmunk 中添加新的依赖项时

    这些是我的等级文件 项目 Top level build file where you can add configuration options common to all sub projects modules plugins id

随机推荐

  • Delphi 自定义事件的例子

    我们这个控件将演示控件的自定义事件的书写 这个控件有一个类型为string的SensitiveText属性 xff0c 当用户在输入框中输入的文字为InvalidText时就会触发OnSensitiveText事件 按照惯例 xff0c 我
  • c++中sscanf的用法

    sscanf 读取格式化的字符串中的数据 swscanf 是 sscanf 的宽字符版本 xff1b swscanf 的参数是宽字符串 swscanf不处理 Unicode 全角十六进制或 34 兼容性区 34 字符 除此以外 xff0c
  • c++内存测试

    void MemoryTest 内存测试 指针嵌套 char rr 栈中分配内存 系统自动分配释放 xff09 int ee 61 int amp rr 将rr的内存地址转换成整型数 char yy 61 amp rr 定义一个字符型指针y
  • C/C++串口通信原理及读写与操作

    http wangbaiyuan cn c serial communication write reading html 展开 文章目录 在工业控制中 xff0c 工控机 xff08 一般都基于Windows平台 xff09 经常需要与智
  • c# 调用c库dll ,char*转string的解决办法

    最近由于有个未知的设备需要用到modbus通讯协议 xff0c 底层需要与PLC通讯 xff0c 坤跌 xff0c PLC啥型号也不清楚封在里面不能拆 前人只留了几个不能运行的QT代码以及不完整的文档 用惯了C 想要重新学QT xff0c
  • C++多线程编程(入门实例)

    多线程在编程中有相当重要的地位 xff0c 我们在实际开发时或者找工作面试时总能遇到多线程的问题 xff0c 对多线程的理解程度从一个侧面反映了程序员的编程水平 其实C 43 43 语言本身并没有提供多线程机制 xff08 当然目前C 43
  • Android Studio 使用Log

    Android使用log来记录信息 xff0c 测试了下 xff0c 和system out println区别不大 xff0c 主要优势在于能使用过滤器过滤日志 本文记录基础的log使用方法 xff0c 来自 第一行代码 xff0c 以及
  • 指针强制转换问题

    void ff void abc 任意类型数据指针 xff08 指针即内存地址 xff09 int z 61 int abc 强制转换成int 指针变量 int zz 61 z 获取内存中的值
  • 新手git教程

    本文转载自 xff1a http igeekbar com igeekbar post 82 htm Git近些年的火爆程度非同一般 xff0c 这个版本控制系统被广泛地用在大型开源项目 xff08 比如Linux xff09 xff0c
  • 使用Project进行项目管理

    下面开始介绍Project的使用 1 从下列地址获取Project 2010的副本 版权问题 xff0c 已删除地址 2 安装 2 1 版权页 2 2 自定义安装页 2 3 安装完毕 3 使用该软件进行项目管理 3 1 打开Project
  • Marshal在C#中的应用(void *指针到IntPtr的转化)

    C 调用C语言的API时一般把void 指针转换成IntPtr xff0c 但这经常远远不够的 在C语言中void 是个万金油 xff0c 尤其是一些老的c语言程序 xff0c 所有的参数就一个void 指针 xff0c 里面包罗万象 xf
  • VS2012 2013 无法显示查找功能 无法具体定位 解决方法

    xfeff xfeff 问题的现象 通过使用 Ctrl 43 Shift 43 F 也就是Find In Files功能 xff0c 使用之后只能显示统计结果 不显示具体行 如下图 regedit 中在注册表中查找 xff1a HKEY C
  • C#中使用指针转换数据类型[C#/unsafe]

    今日因为一个同事说起 xff0c 在原来的旧系统中使用指针做数据转换很方便 xff0c 比如要把浮点数转化为数组 xff0c 也或者是字符串的相互转换 xff1b 当然 xff0c 大家都知道c 中实现指针只需要写入unsafe 编译选项把
  • c#指针的使用例程

    unsafe double value 61 888888 byte v1 61 BitConverter GetBytes value byte v2 61 new byte v1 Length double pv 61 amp valu
  • MPAndroidChart LineChart 折线图 你要的都在这里了

    前言 MPAndroidChart已经出了很长的一段时间 xff0c 相信大家也有所耳闻 xff0c 自己也使用了有一段时间 xff0c 固在此写下文章 xff0c 根据项目的需求 xff0c 记录一些见解与问题 xff0c 作为参考 望大
  • Android Chart框架 MPAndroidChart 坐标轴设置

    1 轴线的绘制 设置轴线就先必须取得轴线类Axis 在一个图标中有三个轴线 xff1a x轴 xff1a 调用 getXAxis 获取左边y轴 xff1a 调用 getAxisLeft 获取右边y轴 xff1a 调用 getAxisRigh
  • Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)

    目录 前言 本文涉及文章 其他相关文章 1 数据准备 1 1 数据来源 2 曲线展示 2 1 MPAndroidChart获取 2 2 数据对象获取 2 3 数据展示 3 曲线完善 3 1 图表背景 边框 网格线修改 3 2 X Y轴值的自
  • Android资源文件在配置文件中的使用

    Android资源文件大致可以分为两种 xff1a 第一种是res目录下存放的可编译的资源文件 xff1a 这种资源文件系统会在R Java里面自动生成该资源文件的ID xff0c 所以访问这种资源文件比较简单 xff0c 通过R XXX
  • android 如何创建配置文件和读配置文件

    因为一些配置信息 xff0c 多处用到的 且以后可能变更的 xff0c 我想写个 prorperties配置文件给管理起来 在studio中新建一个Assets文件 gt 新建一个file文件类型为properties文件 该文件可以与re
  • android上如何写配置文件

    android上如何写配置文件 xff1a 使用SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类 xff0c 用来保存应用的一些常用配置 xff0c 比如Activity状态 x