昨天做了一个搜索历史的功能,然后根据搜索的历史可以调回到上一个页面,这里涉及到一个用sharedpreferences保存对象的问题,sharedpreferences是不能够直接保存对象的,我们需要将对象序列化成一个字符串进行存储...Gson(); strJson = gson.toJson(object); saveSharePlayList(context,strJson); } 取出来的时候
接下来就讲讲使用SharedPreferences来保存密码和账号,也许有些人会考虑的数据库,但是我个人认为对于保存简单的数据,使用的数据库就大材小用了,SharedPreferences比较轻量级 首先写好布局...,第一参数为保存的文件名,第二个为保存的模型,当文件存在就读取,如果不存在就创建 private SharedPreferences sp; //第一参数为保存的文件名,第二个为保存的模型,当文件存在就读取...,如果不存在就创建 sp = getSharedPreferences("info",MODE_PRIVATE); 增加按钮点击事件,点击按钮保存账号和密码 save.setOnClickListener...这个info.xml的文件保存在data/data/包名/shared_prefs/info.xml,可以看到是以XML格式保存的 ? ?...(key,value)保存数据 ④使用editor调用apply()或者commit()才会生效 读取 ①通过getSharedPreferences("文件名",模式)获得SharedPreferences
可能一些应用程序不需要保存用户的进度信息,但是用户对于应用程序的设置信息一定要保存。很多应用需要保存大量的数据到数据库或者文件里,比如看电视的应用,需要保存大量的频道信息。...下面就给大家介绍一下在Android中数据是如何保存的。 key-value键值集合保存数据: 如果你有一些相对较少的键值数据集需要保存,那么SharedPreferences应该能够满足你。...一个SharedPreferences对象指向了一个键值对形式保存数据的Shared Preference文件,它提供了一些很方便读取和写入数据的方法。...每一个SharedPreferences文件都被Android framework管理,可以是只能创建它的应用程序访问,也可以分享给其他应用程序。怎么用SharedPreferences保存数据呢?...获取数据很简单,分两步: 1、获取SharedPreferences对象; 2、调用get方法获取key对应的值; 以上就是利用SharedPreferences进行数据保存的知识,基本上包含了所有使用
今天偶然遇到一个错误,就是保存文本的时候带有了emoji表情,报错了 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8A\...简而言之就是数据库版本的问题,5.5之前的不支持,5.5+支持,原因老版本的仅仅支持3个字符的unicode,新版本支持到4位 好吧,那么重装数据库,然后修改字符集,问题就能解决了 ?
效果:点击按钮,将ImageView的图片保存到相册中。 activity_main: <?xml version="1.0" encoding="utf-8"?...Override public void onClick(View view) { // tvSave.setClickable(false); //相关权限的申请...= PackageManager.PERMISSION_GRANTED) { // 申请一个(或多个)权限,并提供用于回调返回的获取码(用户定义) ActivityCompat.requestPermissions...e.printStackTrace(); } } }); } //权限申请的回调...mLDialog.dismiss(); // } tvSave.setClickable(true); } }; //将要存为图片的view
Context 类中的 getSharedPreferences()方法: 此方法接收两个参数,第一个参数用于指定 SharedPreferences 文件的名称,如果指定的文件不存在则会创建一个,第二个参数用于指定操作模式...MODE_PRIVATE 是默认的操作模式,和直接传入 0 效果是相同的。 ...SharedPreferences 的文件名。...2.SharedPreferences的使用 SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor...使用Preference来存取数据,用到了SharedPreferences接口和SharedPreferences的一个内部接口SharedPreferences.Editor,这两个接口在android.content
最近在做“桌面”项目(奶糖桌面),在做到“隐藏APP”的时候,是把要隐藏的APP(arraylist)包名拿出来,在获取全部APP(allapplist)的时候,把获取到的包名和所有APP包名做一个比较...; } catch (Exception e) { /** * 填充预设数据 */ SharedPreferences.Editor...新建一个SaveArrayListUtil.java类 /** * 将arrayList的内容保存到sp里 */ public static void saveArrayList...} } } } //定义SP.Editor和文件名称 SharedPreferences.Editor...public static ArrayList getSearchArrayList(Context context) { //先定位到文件 SharedPreferences
源码解析 SharedPreferences 的使用很简单,这里就不再演示了。...() 方法来获取默认的 SharedPreferences 对象,其代码如下所示: > PreferenceManager.java /** * 获取默认的 SharedPreferences 对象...这是 SharedPreferences 的一个槽点,也是我们使用过程中需要注意的。 2....初始化的时候会读取 sp 文件,可能导致后续 getXXX() 方法阻塞。建议提前异步初始化 SharedPreferences。sp 文件的数据会全部保存在内存中,所以不宜存放大数据。...建议针对高频修改的配置项存在子啊单独的 sp 文件。commit() 同步保存,有返回值。 apply() 异步保存,无返回值。按需取用。
瞎逛的时候发现了一个新东西,来和大家分享一下。 SharedPreferences 大家应该都用过,它的槽点很多,多到我专门写了一篇文章。 细数 SharedPreferences 的那些槽点 !...In particular, it addresses these design shortcomings of the SharedPreferences API。 这个我可以翻译一下。...它是线程安全,且非阻塞的。尤其是,它解决了 SharedPreferences API 的设计缺陷。 好家伙,看起来这就是 SharedPreferences 的替代品了。...,现在并不足以替代 SharedPreferences 。...第一,Google 自己也快看不下去 SharedPreferences 了。
源码解析 SharedPreferences 的使用很简单,这里就不再演示了。...() 方法来获取默认的 SharedPreferences 对象,其代码如下所示: > PreferenceManager.java /** * 获取默认的 SharedPreferences 对象...这是 SharedPreferences 的一个槽点,也是我们使用过程中需要注意的。 2....初始化的时候会读取 sp 文件,可能导致后续 getXXX() 方法阻塞。建议提前异步初始化 SharedPreferences。 sp 文件的数据会全部保存在内存中,所以不宜存放大数据。...建议针对高频修改的配置项存在子啊单独的 sp 文件。 commit() 同步保存,有返回值。apply() 异步保存,无返回值。按需取用。
SharedPreferences作为Android中的轻量级存储,读写操作都非常简单,使用的也非常广泛。 一般存储一些用户的不重要的信息和一些参数等。以键值对的方式存储。...存放于/data/data/包名/shared_prefs目录下 1.一般使用 SharedPreferences sp = getSharedPreferences("config", Context.MODE_PRIVATE...public static final String FILE_NAME = "config"; private static Activity activity; public static SharedPreferences...getBoolean(String key) { return sp.getBoolean(key, false); } } b.使用 在Activity中或者BaseActivity的onCreate...中加上 SpUtil.setActivity(this); 然后就可以极简便的使用了,根据对应的key获取对应的value 写: SpUtil.setString("testKey", "testValue
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io...
有时应用程序有少量的数据需要保存,而且这些数据的格式很简单,都是普通的字符串、标量类型的值等,比如应用程序的各种配置信息(如是否第一次打开应用、是否打开音效等)、小游戏的玩家积分等,对于这种数据,Android...提供了SharedPreferences进行保存。...一.SharedPreferences与Editor简介 ---- SharedPreferences保存的数据主要是简单类型的key-value对。...二.SharedPreferences的存储位置和格式 ---- SharedPreferences数据总是保存在/data/data//shared_prefs目录下,SharedPreferences...最后补充一个小知识点:用shape自定义按钮 当要实现如应用中所示的按钮,首先在drawable目录下建一个xml文件,然后利用shape自定义所需要的按钮形状,比如这里只是实现了最简单的圆角,黑色细线的按钮
多进程下的SharedPreferences情况 先启动主进程并获取SharedPreferences对象,然后对值进行修改,然后启动其他进程并获取SharedPreferences对象,能取得修改后的值...对象的时候才会从磁盘中进行读取,读取后的值保存在了内存中,获取SharedPreferences对象优先从缓存中获取,再次创建时才会重新从磁盘中再次读取文件。...可以看到,EditorImpl内部有一个mModified的Map成员变量,我们所有的修改在调用了commit或者apply方法后才会执行保存,可以看到,不管调用哪个方法都会调用commitToMemory...put进去的值添加到SharedPreferences的mMap成员变量中。...) Android的SharedPreferences采用了这种模式,主要还是为了防止频繁通过IO读取磁盘带来的性能开销,毕竟SharedPreferences还是比较常用的,如果实时去磁盘文件进行读取
本地数据存取 插件 ; 在不同的平台 , 基于不同的机制开发 , 如 Android 平台中基于 SharedPreferences 开发 , iOS 平台中基于 NSUserDefaults 开发 ;...类提供的所有方法 , 重点关注数据的访问方法 ; 数据存储示例 : _setValue() async { /// 先获取 SharedPreferences 实例 SharedPreferences...完成'; }); /// 将数据保存到 SharedPreferences 中 await prefs.setString("name", "小王"); } 数据访问示例...createState() => _MyAppState(); } class _MyAppState extends State { String textInfo = "点击按钮保存数据到...完成'; }); /// 将数据保存到 SharedPreferences 中 await prefs.setString("name", "小王"); } _getValue
私有属性,获取界面控件,保存注册信息到SharedPreferences中,Activity的onCreate中调用init() 登录界面 标题栏的引用 EditText、Button控件 SharedPreferences...使用本地数据存储用户信息,注册成功后将用户名和密码保存在SharedPrefereces中,以便于后续用户登录。为保证账户的安全,在保存密码时采用MD5加密算法,这种算法不可逆,具有一定的安全性。...--到main_title_bar.xml中tv_main_title按钮的下方,加个“保存”--> <TextView android:id="@+id/tv_save" android:layout_width...file 保存注册信息到SharedPreferences中 在REgisterActivity中创建一个saveRegisterInfo()方法,讲注册成功的用户名和密码(经过MD5加密)保存到SharedPreferences...ShatredPreferences中查询输入的用户名是否有对应的密码,如果有则用此密码与当前输入的密码(需要MD5加密)进行比对,如果信息一致,则登录成功,并吧登录成功的状态和用户名保存到SharedPreferences
在Android中,存储数据主要采用了3种方案,分别为文件存储, SharedPreferences存储以及数据库存储,当然,数据也可以保存在sd卡里,但相比上面这几种,可能就要麻烦点了,而且安全性也会降低...好了,我们今天就来使用它们当中的 SharedPreferences来实现一下简单的记住密码功能。 不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的。...也就是说,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。...admin.setText(account); pasd.setText(password); checkBox.setChecked(true); //勾选记住密码按钮...因为当用户选中了记住密码复选框,并成功登陆了一次后,remember_password 键对应的值就是 true 了,这时候如果重启进入登陆界面,就会从 SharedPreferences 将保存的账号和密码读取出来
,value对应存储的值, 使用 SharedPreferences 保存key-value对的步骤一般是这样: 1、使用Activity类的getSharedPreferences方法获取到 SharedPreferences...通常会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在XML文件中。 实例: 使用 SharedPreferences 保存Product类的一个对象和一张图片。...这里提供了两个Button,用来保存和获取使用 SharedPreferences 保存的Product对象和图片。...保存按钮的点击事件: bt_prod_save.setOnClickListener(new View.OnClickListener() { @Override... 注意: 虽然可以采用编码的方式通过 SharedPreferences 保存任何类型的数据,但不建议使用 SharedPreferences 保存尺寸很大的数据。
SharedPreferences作为android的存储方式有以下特点: 1.只能存放key-value模式的键值。 2.本质就是就是以xml文件在应用程序所在包中存放数据。...SharedPreferences 通过操作android的SharedPreferences类来完成xml文件的生成,增,删,改 的动作都由android系统内部模块完成和解析的。...用户不需要去 xml文件的生成和解析 4.由于 SharedPreferences 只能存放key-value 简单的数据结构,通过用来做软件配置参数,用来配置用户对软件的自定义或设置参数。...> 工号 电话号码 保存...android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor
因为工作中需要,需要生成一个带表格的图片 例如: 直接在html中写一个table标签,然后单独把表格部分保存成图片 或者是直接将excel中的内容保存成一个图片 刚开始的思路,是直接生成一个带有table...标签的html文件,然后将这个文件转成图片,经过查找资料发现需要安装webkit2png,而这个库又依赖其他的东西,遂放弃。...当初的目标是直接生成一个图片,并且是只需要安装python依赖库就行,而不需要在系统层面安装相应的依赖包 后来考虑使用Python的图片处理库Pillow,和生成表格式的库prattytable,下面的图片是最终生成的图片效果...,来确定图片的最终大小 img_size = draw.multiline_textsize(tab_info, font=font) # 图片初始化的大小为10-10,现在根据图片内容要重新设置图片的大小...但是还有一点问题,在使用中文时,表格会又一些错列,应该是使用字体的事,因为我没有找到合适的字体,所以这个问题暂时没有解决。
领取专属 10元无门槛券
手把手带您无忧上云