android - fragment 数据丢失?状态丢失?

这篇具有很好参考价值的文章主要介绍了android - fragment 数据丢失?状态丢失?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最佳答案

一些状态丢失的例子:

1. 假设您有一个按钮和一个 TextView 。在代码中,你已经定义了初始值为 0 的整数 i,它通过单击按钮递增 1,并且它的值显示在 TextView 中。假设你已经按下按钮 5 次,那么 textview 将被设置为 0。也就是说 Integer 在屏幕变化时丢失了它的值

解决方案:覆盖 onSaveInstanceState 并输入整数值。然后在 onResume 或 onCreate 方法中保留该整数的值。

2. 假设您有一个待办事项 ListView 。用户动态添加到该 ListView 中的dos。假设用户添加了 3 个项目,然后在屏幕旋转时(或者如果应用程序重新启动), ListView 将变为空。

解决方案: 再次在 onSaveInstanceState 中,放入 ArrayList。 (列表可以实现为“Serializabe”或“Parcelable”,并且可以作为一个整体存储。您不需要存储 ListView 的每个项目)。然后在 onResume 或 onCreate 方法中,获取该 ListView 。

3.屏幕旋转时,屏幕中的所有编辑文本都将变为空。

我对状态丢失的简单理解是,只要配置发生变化(屏幕旋转或应用重启), Activity 的整个生命周期都会被调用。因此,任何未保存的内容都将丢失。

好吧,这让我想起任天堂的退出屏幕消息,“任何未保存的内容都将丢失”。

android onSaveInstanceState

当Android应用程序的活动被系统销毁时,系统会调用onSaveInstanceState()方法来保存活动的当前状态。该方法获取一个Bundle对象作为参数,可以用来存储和传递数据。当活动被重新创建时,可以通过onRestoreInstanceState()方法来恢复之前保存的状态。

以下是一个示例代码:文章来源地址https://www.toymoban.com/news/detail-687605.html

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    // 在此处保存需要的状态数据到outState中
    outState.putString("key", "value");
}
 
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    // 在此处恢复之前保存的状态数据
    String value = savedInstanceState.getString("key");
}

到了这里,关于android - fragment 数据丢失?状态丢失?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 7 大 Android 数据恢复软件,可轻松找回丢失的数据

    每年,由于各种原因,数百万人从他们的 Android 设备中丢失数据。它可能像意外删除文件一样简单,也可能像系统崩溃一样复杂。在这种情况下,拥有高效的数据恢复工具可以证明是救命稻草。Mac 用户尤其需要找到与其系统兼容的软件。好消息是,有多种 Android 数据恢复软件

    2024年02月19日
    浏览(36)
  • Xamarin.Android中的Fragment

    一般而言,会在 activity 中添加一个加载 fragment 的方法。通过点击菜单的按钮,加载不同的 fragment 。其样子一般是这样的: 在 fragment 中往往通过工厂模式,提供及返回实例 非常简单,因为fragment一定是要寄存到某个activity中。因此直接使用如下代码: 通过 FragmentManager 查找

    2024年02月10日
    浏览(53)
  • Android 基于Fragment的权限封装

    业内普遍比较认可使用另外一种小技巧来进行实现。是什么小技巧呢?回想一下,之前所有申请运行时权限的操作都是在 Activity 中进行的,事实上,Android 在 Fragment 中也提供了一份相同的 API,使得我们在 Fragment 中也能申请运行时权限。 但不同的是,Fragment 并不像 Activity 那

    2024年01月23日
    浏览(32)
  • Android Navigation 导航切换fragment用法

    对于Android Navigation组件的导航到Fragment,您可以按照以下步骤操作: 首先,在您的项目的build.gradle文件中添加Navigation依赖: 在你的res目录下的navigation文件夹中创建一个nav_graph.xml文件,并定义您的导航图。 在您的布局文件中,添加NavHostFragment作为导航的目标。 在您的Activi

    2024年02月12日
    浏览(34)
  • Android Activity和Fragment的对比

    参考来源 参考来源 参考来源 onAttach() 作用:fragment已经关联到activity,这个时候 activity已经传进来了, 获得activity的传递的值 就可以进行 与activity的通信里, 当然也可以使用getActivity(),前提是这个fragment已经和宿主的activity关联,并且没有脱离,有且只有调用一次。 onCreate(

    2024年02月11日
    浏览(41)
  • Android ViewPager2 + Fragment 联动

    本篇主要介绍一下 ViewPager2 + Fragment , 上篇中简单使用了ViewPager2 实现了一个图片的滑动效果, 那图片视图可以滑动, ViewPager2也可以滑动 Fragment 概述 ViewPager2 官方对它的描述就是 以可滑动的格式显示视图或 Fragment 也就说明提供了滑动Fragment的实现 并且还很简单, 下面来看看吧

    2023年04月08日
    浏览(33)
  • Android Studio中fragment的应用

    目录 一、fragment的概念 1.1Fragment的历史由来 1.2什么是Fragment 1.3Fragment的生命周期  1.4Fragment的优点 二、Fragment的使用方法 三、Fragment的动态加载实现  四、总结 Fragment出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也

    2024年02月03日
    浏览(36)
  • 展开说说:Android Fragment完全解析-卷一

    Fragment   中文意思是碎片,Android 3.0推出的一个系统组件,主打一个在 应用界面中 可模块化又 可重复使用。 F ragment 它很独立,它可以 定义和管理自己的布局,具有自己的生命周期,并且可以处理自己的输入事件。 F ragment 很粘人,它 不能独立存在。它们必须由 activity 或其

    2024年04月25日
    浏览(44)
  • Android studio心得——fragment动态加载

    在Android应用程序中,Fragment是一种可以嵌入Activity中的组件。通过 Fragment,我们可以将UI 目录 前言 一、什么是Android Studio 二、简介Fragment 三、学期知识汇总 四、什么是碎片(Fragment) 五、页面实现步骤 1.程序APP主界面的常用例子 2.定义4个Fragment 3.activity_main.xml代码展示 4.四个

    2024年02月09日
    浏览(30)
  • 无涯教程-Android - List fragments函数

    框架的ListFragment的静态库支持版本,用于编写在Android 3.0之前的平台上运行的应用程序,在Android 3.0或更高版本上运行时,仍使用此实现。 List fragment 的基本实现是用于创建fragment中的项目列表 本示例将向您说明如何基于arrayAdapter创建自己的列表片段,在开始编码之前,我将在

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包