首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我被卡住了,在我重启应用程序后,我不知道如何使用sharedpreferences来保留我的卡片视图状态?如果可能的话,请推荐一些代码

在重启应用程序后使用SharedPreferences来保留卡片视图状态的方法如下:

  1. 首先,在你的应用程序中创建一个SharedPreferences对象,用于存储和读取数据。可以使用以下代码创建一个SharedPreferences对象:
代码语言:txt
复制
SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
  1. 接下来,你可以使用SharedPreferences对象来保存和读取数据。对于卡片视图状态,你可以将其保存为一个布尔值。例如,当卡片视图被选中时,将其状态保存为true,否则保存为false。可以使用以下代码保存和读取卡片视图状态:

保存卡片视图状态:

代码语言:txt
复制
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("cardViewSelected", true); // 将卡片视图状态保存为true
editor.apply();

读取卡片视图状态:

代码语言:txt
复制
boolean cardViewSelected = sharedPreferences.getBoolean("cardViewSelected", false); // 默认值为false
  1. 当你重启应用程序后,可以在适当的位置读取SharedPreferences中保存的卡片视图状态,并根据该状态来设置卡片视图的选中状态。例如,在你的Activity的onCreate方法中添加以下代码:
代码语言:txt
复制
boolean cardViewSelected = sharedPreferences.getBoolean("cardViewSelected", false);
if (cardViewSelected) {
    // 设置卡片视图为选中状态
} else {
    // 设置卡片视图为非选中状态
}

这样,当你重启应用程序后,卡片视图的状态将会被保留。

关于代码推荐,腾讯云提供了一系列与云计算相关的产品,其中包括数据库、存储、人工智能等。你可以根据你的具体需求选择适合的产品。以下是一些腾讯云产品的介绍链接:

  1. 腾讯云数据库:https://cloud.tencent.com/product/cdb
  2. 腾讯云对象存储:https://cloud.tencent.com/product/cos
  3. 腾讯云人工智能:https://cloud.tencent.com/product/ai

请注意,以上链接仅供参考,具体选择产品时需要根据实际需求进行评估和比较。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android面试题集锦(2019最新总结)

当时问到我时候还真不知道怎么回答,只知道相同点:都是为了线程间通信。...静态注册是常驻型 (不能自动销毁),也就是说当应用程序关闭,如果有信息广播,程序也会被系统调用自动运行。 3.同一个优先级下,谁先启动快,谁将先接收到广播。...避免: 1.不要在主线程做耗时操作(数据库查询,网络操作,大量数据存储,图片切割等)。 2.不要在广播内做耗时操作,如果非要,那么通过Service新起线程进行耗时操作。...区别:Thread 运行是独立于 Activity ,也就是说当一个 Activity finish 之后,如果你没有主动停止 Thread 或者 Thread 里 run 方法没有执行完毕的话...同样是在后台运行,不需要交互情况下,如果只是完成某个任务,之后就不需要运行,而且可能是多个任务,不需要长时间运行情况下使用线程。 2.如果任务占用CPU时间多,资源大情况下,要使用线程。

32410

Android后台活实践总结:即时通讯应用无法根治“顽疾”

1)控制onStartCommand函数返回值: 对这个函数理解是:当服务异常终止时,是否重启服务?有些文章里面在用这个做保活时,修改是flag,实际测试中是无效。...但能触发onDestory情况,不知道内存回收会不会触发。另外两种情况(2,3)是不触发测试方法是“设置”-> 应用管理-> 正在运行-> 停止服务。...2)双服务觉得没有native守护进程好,虽然360,微信什么都有几个进程服务,但如果不添加到后台的话,效果一样不能活,也会进入停止状态。...但是这种方式比较消耗电量,并且由于不同手机系统定制改变,当应用强制停止时,父进程并不一定真正杀死,因此一些特定机型上是无法通过此方式进行判断....这里推荐使用liunx socket方式进行类似心跳包检测,并且当触发检测Service是否被杀死之前,需要判断应用是否已经卸载,如果应用已经卸载,则不再进行检测Service行为,直接调用exit

2.2K30

AndroidStudio制作“界面,设置,修改密码,设置密和找回密码

前言 大家好,是 Vic,今天给大家带来AndroidStudio制作“界面,设置,修改密码,设置密和找回密码概述,希望你们喜欢 学习目标 掌握修改密码功能开发,和实现用户密码修改; 掌握设置密功能开发...,通过密我们可以找回用户密码,保证用户安全。...工具类 对于一个项目来说,项目中将多次用到sharedPreferences共享参数,去存储用户登录状态或清除登录状态,“界面也要求用到读取用户姓名方法,所以我们干脆把这三个方法都扔到AnalysisUtils...头像点击,会判断是否登录,如果登录了,则跳转到个人资料界面,如果没登录,则跳转到login登录页面。...,点击“点击登录”按钮,登录完成,应该显示“界面,并且正常显示用户名。

1.9K20

最新iOS设计规范二|7大应用架构

不要鼓励重启。重新启动会花费一些时间,并使应用看起来不可靠且难以使用如果应用程序存在内存或其他问题,经常导致必须通过重启才能恢复,那一定要尽快解决掉这些问题。...避免要求别人对应用程序进行过快或过高评分。首次启动不久(或在用户频繁应用程序前)询问评级很烦人,并且很可能会减少您收到有用反馈数量。...系统将启动屏幕替换为初始屏幕之后,应当让用户立即进入并开始享受您应用程序如果您需要提供教程和引导,务必提供一种跳过它们方法,而且切忌向老用户展示它们。 预想用户可能会需要帮助。...主动寻找和思考用户可能卡住地方。例如:游戏中暂停或角色没有前进时显示一些有用提示。让用户可以重播教程,以防第一次进入APP他们错过任何内容。 突出教程中要点。...如果APP需要有关用户、设备或环境信息,可能向系统请求,而不是直接询问用户。例如:如果你想要知道用户邮政编码提供本地选项时,可以向用户请求获取他们位置。

2.6K20

【CSS】333- 使用CSS自定义属性做一个前端加载骨架

虽然前端开发人员需要注意一些事情,比如压缩和缓存,但是设计人员必须考虑UI处于“加载”或“离线”状态外观和行为。 速度幻觉 随着我们对移动体验期望发生变化,我们对性能理解也变化。...(Facebook骨架屏) ? (Slack骨架屏) 例子 假设你正在构建一个Web应用程序,这是一种旅行建议类型东西,人们可以分享他们旅行和推荐地点,所以你主要内容可能看起来像这样: ?...如果代码交接给另外一个前端开发人员,他们就不知道所有这些神奇数字是从哪里来,显然这是不易难维护。...另外,我们还可以使用一些变量(比如头像大小、卡片填充)定义实际卡片样式,并始终使其与骨架版本保持同步。添加一个媒体查询调整不同断点骨架部分现在也非常简单: ?...我们需要做就是顶层放置一个新渐变,然后使用设置其位置动画 @keyframes 以下是成品骨架外观完整骨架屏-demo: ?

1.7K31

Android面试

Android开发中何时使用多进程 要想知道如何使用多进程,先要知道Android里多进程概念。一般情况下,一个应用程序就是一个进程,这个进程名称就是应用程序包名。...坏处的话,多占用了系统空间,大家都这么用的话系统内存很容易占满而导致顿。消耗用户电量。应用程序架构会变复杂,应为要处理多进程之间通信。这里又是另外一个问题了。...ContentResolver使用insert、delete、update、query方法,操作数据。 介绍下ContentProvider是如何实现数据共享。...3、双进程Service:让2个进程互相保护,其中一个Service清理,另外没被清理进程可以立即重启进程 4、AlarmManager不断启动service。...你还需要尽可能减少onDraw调用次数,大多数时候导致onDraw都是因为调用了invalidate().因此尽量减少调用invaildate()次数。

97340

Android 手表应用开发设计规范 【译】

相同生理指标?然后你就能够分析出在什么场景下给用户推送你应用程序信息了。一定要记住,如果用户觉得你给出建议那么不相关的话,用户随时有权利删掉你建议卡片。...便捷选择 (Making it fast) 关于二维选择,有一些使用原则需要注意: •尽可能减少卡片数量 •会频繁使用到的卡片应该在最上层 •卡片内容和样式都应该尽量简单 •优先考虑方便用户快捷操作...如何退出   当用户做出选择,应用应该自动退出二维选择界面。用户也可以向下滑动第一张卡片退出,或者从左向右横滑处每个层级最左侧的卡片退出。...该控件全局系统界面中被广泛使用,包括上滑提示卡片出现列表中。当然,每款应用也可以根据自身需要打破这些常规控件样式。更详细内容参考应用架构规范部分。...采用较高提示时,状态指示应显示屏幕上方或居中区域。如果你将状态指示或语音热词置于屏幕底部时,系统会强制使用高度较小提示卡片

4K70

Android开发高手课NOTE

而且即使我们多次写入同一个文件,SP 也没有将多次修改合并为一次,这也是性能差重要原因之一。 顿。由于提供了异步落盘 apply 机制,崩溃或者其他一些异常情况可能会导致数据丢失。...所以当应用收到系统广播,或者调用 onPause 等一些时机,系统会强制把所有的 SharedPreferences 对象数据落地到磁盘。如果没有落地完成,这时候主线程会被一直阻塞。...如果你没有计划完全迁移到 Litho,建议可以优先使用 Litho 中 RecyclerCollectionComponent 和 Sections 优化自己 RecyelerView 性能。...最开始时候,可能大家都不重视也不愿意去增加关键代码日志,但是当我们通过日志平台解决了一些疑难问题以后,团队内部成功案例越来越多时候,这种习惯也就慢慢建立起来了。...如果大厂,就应该从客户端到后端,尽可能全面深入研究你参与模块,多想想如何把你所做模块优化到极致,并且巨大用户量面前依然能够稳定运行。

86930

如何在2021年编写网络应用程序

这将暂时失败,但放心。 Optionals 这些工具不在本文讨论范围之内。也许我会在下一个中详细介绍。 总是使用Eslint检查代码潜在错误。...Components 想象一下,想为想看每部电影制作一张简单的卡片(标题+文字),不想重复每张卡片代码。一个很好规则是DRY(Don’t Repeat Yourself)。...这不是想要如果向card组件添加属性并在主视图中写入数据,这将允许为每张定义值。 <!...(您正在使用Vue仅运行时版本,而模板编译器不可用。) 您输入Vue错误。如果您还记得的话,有很多导入Vue方法。...当我们执行操作Vue.use(Vuetify);index.js中,它将在整个项目中将其激活。使用它们时,可能仅导入Vuetify组件。但这需要做一些超出本教程范围工作。

10.9K20

C# WPF MVVM开发框架Caliburn.Micro Screens, Conductors 和 Composition⑦

一些屏幕示例可能应用程序设置模式对话框、Visual Studio中代码编辑器窗口或浏览器中页面。你可能对此有很好直觉。...您可能已经注意到,CMIConductor接口使用术语“项”而不是“屏幕”,引号中加了术语“屏幕集合”。原因是CM导体实现不需要执行项目实现IScreen或任何特定接口。...View-First 如果您正在使用WP7或Silverlight导航框架,您可能想知道是否/如何利用屏幕和导体。到目前为止,一直假设外壳工程主要采用ViewModel优先方法。...如果有一个复杂特性,那么可能会将其分解为这些区域。 不打算逐行检查这个样本。如果你花点时间仔细看看,自己弄清楚事情是如何运作,那就更好了。但是,想指出一些有趣实现细节。...同一ViewModel上多个视图可能不知道这一点,但是Caliburn.Micro可以同一个ViewModel上显示多个视图

2.5K20

Android-App性能优化

(注:此图不知道啥时候收集,如有侵权,立删): 快 如何让app在运行过程过不顿,运行流畅,速度快,也就是说如何解决顿呢?我们先看看那些因素影响顿? 1....还有就是刷新,刷新的话尽量减少不必要刷新和尽可能减少刷新面积 启动优化 冷启动 冷启动是指安装apk后首次启动应用程序,或者应用程序上次结束,进程被杀死后重新打开app....创建Activity 导入视图(inflate view) 计算视图大小(onmesure view) 得到视图排版(onlayout view) 绘制视图(ondraw view) 应用程序进程完成首次绘制...比如:线程使用,这里推荐使用线程池,也写过相关文章,感兴趣可以了解一下。Android-ThreadPooll....其他 这都是本人一些建议: 序列化采用推荐Parcelable代替Serializable 集合如果是插入和删除用多,建议使用LinkList。如果修改用多,建议ArrayList。

2.1K40

【无矶之谈】语雀宕机这事中学到了什么?

本文也会介绍如何在本地管理笔记,如何同步。 现在让我们通过语雀这个事件,学习点知识吧。...响应状态语雀崩溃,刷新界面,经历了310,503,404错误。...你可以简单地将 Obsidian 作为一个 Markdown 编辑器,编辑、预览 Markdown 文件。但如果你希望更好地使用它,记住它真正力量在于管理密集网络化知识库。...当然如果使用是图床,那自行找相关资料查阅,这只搞本地。...如何线上同步 使用是gitee,直接创建仓库,把笔记当做代码一样。 你要是说移动端没法看,那我就要说你两句,微信又gitee小程序,可以登录你gitee账号,一样可以浏览查看。

61230

【面试黑洞】Android 键值对存储有没有最优解?

为了不主线程,显然应该做成异步; 但这是马上就要显示文字,如果做成异步,就极有可能在程序崩溃时候,后台线程还没来得及把文字存到磁盘。...很明显,如果 SharedPreferences 用异步 API 也就是 apply() 保存的话,是不可能有这么差性能,这个一定是使用同步 commit() 性能来做对比。...关于这一点,相信,微信绝对不会把用户登录状态相关信息用 MMKV 保存并且不做任何备份,因为这一定会导致每天都会有一些用户新一次打开微信时候发现自己登出了。...虽然它文件加载过程是在后台进行,但如果代码它加载完成之前就去尝试读取键值对,线程就会被卡住,直到文件加载完成,而如果这个读取过程发生在主线程,就会造成界面顿,并且数据文件越大就会越。...SharedPreferences 如果使用同步方式保存更改(commit()),会导致主线程耗时;但如果使用异步方式,给它加回调又很不方便,也就是如果你想做一些「等这个异步提交完成之后再怎么怎么样

1.2K20

android之SharedPreferences简介

SharedPreferences是Android平台上一个轻量级存储类,主要是保存一些常用配置比如窗口状态,一般Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences...用法 2个activity 之间数据传递除了可以通过intent传递,还可以使用SharedPreferences共享数据方式 SharedPreferences 用法很简单....当然,如果你愿意保存其他东西,也没有什么限制。只是性能上不知道会有什么问题。...也就是说如果Preference中不存在这个值的话,那么就用后面的值作为返回指,这样就省去了我们if什么什么为空判断。...修改参数必须通过一个SharedPreferences.Editor对象,存储他们时,以确保参数值有统一状态和控制 目前此类不支持多线程 发布者:全栈程序员栈长,转载注明出处:https

3.7K20

软件说明书可以从桌面游戏中学到什么

2.桌子上放置一张Quest,按照说明进行游戏。(附一张Quest外观图片。) 3.每回合使用两张牌。按照卡片给你提示去做。获胜者是第一个完成Quest上写内容的人。...现在,您是否不想阅读接下来三段内容,以了解您可以从此处完成哪些有趣事情?如果用户空白屏幕上盯着您三步介绍而又不知道下一步可能发生什么,则您需要重写文档,或者可能需要重写应用程序。...三个段落 向用户保证他们可以继续使用并成功使用应用程序之后,请与他们讨论下一步该怎么做。他们是否正在使用应用程序构建或分析小部件?这可以同时进行。它们是服务器上设置此应用程序还是本地使用?...后续部分目的是提醒读者他们一旦下线所处状态。好比你再描述领土分布,将遇到对手,可以使用武器和资源。...提供一个切入点,或者我们是否只是向潜在用户提供应用程序代码中包含每种数据类型清单,请他们弄清所有含义,从中编写自己用户指南。 下次编写一说明书时,尝试一下。

71200

应用活终极总结(二):Android6.0及以上活实践(进程防杀篇)

说起来比较绕口,总之本文要讨论内容是如何防止Android应用系统“杀掉”,下篇讨论是“被杀掉”如何让它复活。...接下来将首先分析市面上主流APP防杀方式,为接下来方案提供参考依据,继续往下阅读。 5、市场主流运动类APP活分析:咕咚(v 7.17.0) 5.1 一键清理/滑动清理 a....咕咚"清理能够自动重启,通知被删除自动弹出,说明可能有另外一个东西(进程或Service)监听器运动Service(或进程)存活状态,当Service销毁时,立马将其拉起来;   - ④“咕咚...”强制停止或清理杀死后,再次进入会直接显示运动界面且能够保持杀死之前运动状态,说明其可能利用配置文件记录了相关状态;   - ⑤锁屏/解锁,"咕咚"运动界面会自动弹出,说明其利用了广播机制对锁屏广播进行监听...如果使用弱引用的话,对象A只会被WeakReference所依赖,当a=null时,GC会回收它,从而避免了内存泄漏。

4K21

Flutter 入门指北之数据持久化

忘记来看一下:Flutter 入门指北之状态管理,BLoC 上节讲了状态管理,但是当 App重启,数据就都丢失了,这样就比较尴尬了,什么都要重来,所以这节我们来讲下数据持久化。...先看下效果吧,最终重启 App ,数据也能正常读取显示,说明数据保存下来了 ? ? ? ?...看下实现代码,因为会涉及到多种方式,所以这边视图抽取出来实现 Widget _fileIoPart() { return Card( margin: const EdgeInsets.all...'); } } 因为外部存储文件需要涉及到权限问题,而且 iOS 也不支持,所以如果需要使用文件持久化数据的话,尽量使用另外两种。...sqflite 基本操作语句,文档中已经写得非常明白了,所以就不搬运了,这边直接讲下对于数据库一些封装处理吧,因为打开数据库是一个很消耗资源一个过程,所以呢,推荐实现单例会比较好。

1.4K10

ViewModels and LiveData- Patterns + AntiPatterns

视图通常没有单元测试(除非你使用Robolectric),所以代码行数越少越好。视图应该只知道如何显示数据并将用户事件发送到ViewModel(或Presenter)。这就是所谓被动视图模式。...当一个ViewModel活着并运行时,一个Activity可以处于其生命周期任何状态ViewModel不知道情况下,Activity和Fragment可以销毁并再次创建。...由于ViewModel并不了解Android,所以它不知道Android是如何喜欢频繁地杀死View。这有一些好处。...如果ViewModel容纳了太多代码或者有太多责任,可以考虑。 将一些逻辑转移到与ViewModel相同范围presenter中。...考虑一下这个图,视图使用观察者模式,数据层使用回调。 img 如果用户退出了应用程序视图就会消失,所以ViewModel就不会再被观察。

1.1K30

Mojave升级Big Sur一些坑和注意事项

建议还是按部就班升级比较好一些。 升级前 升级前一定要用时间机器备份一下,建议是关了时间机器限流在锁屏状态下备份,亲测比较快一些如果是一边使用一边备份,速度会很慢。...建议睡觉时候备份更好一些,醒来就备份完了。时间机器算是后悔药了,万一升级失败了还可以退回去。...对于这种情况,可以考虑重启几次试试,也可能是网络问题。先按网上方法重启,然后将我不是很稳定电信网换成手机热点之后就成功了。...升级 升级完成之后,进入了系统卡住了,应该是一个类似介绍页面的东西,一直着没反应。如果没遇到这种情况更好,遇到之后重启就可以了。这是遇到第一个坑。...还有一个小坑就是关于屏幕颜色问题,是19版pro,机器开启原彩显示机器会时不时变色,一会偏绿一会偏黄,不知道什么原因,关了原彩显示就没有问题。同学20版pro就不存在这个问题。

4K50
领券