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

如何将数据从Frag B传递到Frag A,并在再次调用时保留frag A的状态?

在Android开发中,可以通过使用Bundle或ViewModel来实现将数据从一个Fragment(Frag B)传递到另一个Fragment(Frag A)并保留Frag A的状态。

  1. 使用Bundle传递数据:
    • 在Frag B中,创建一个Bundle对象,并使用put方法将需要传递的数据放入Bundle中。
    • 在Frag A中,通过getArguments方法获取传递过来的Bundle对象,并从中取出数据。
    • 在Frag A中,可以将获取到的数据保存在成员变量中,以保留其状态。
    • 例如,在Frag B中传递数据到Frag A:
    • 例如,在Frag B中传递数据到Frag A:
  • 使用ViewModel传递数据:
    • 创建一个ViewModel类,用于保存需要传递的数据。
    • 在Frag B中,通过ViewModelProvider获取ViewModel对象,并将需要传递的数据保存在ViewModel中。
    • 在Frag A中,通过ViewModelProvider获取相同的ViewModel对象,并从中取出数据。
    • 在Frag A中,可以将获取到的数据保存在成员变量中,以保留其状态。
    • 例如,在Frag B中使用ViewModel传递数据到Frag A:
    • 例如,在Frag B中使用ViewModel传递数据到Frag A:

以上是将数据从Frag B传递到Frag A并保留Frag A的状态的两种常用方法。根据具体的需求和场景,选择适合的方法来实现数据传递和状态保留。

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

相关·内容

深入理解TCPIP协议实现之ip分片(基于linux1.2.13)

/* 该ip报文本身就是一个分片,现在需要进行再次分片, 偏移首地址是该报文首地址乘以8,因为再次被分片报文,他偏移是 基于原来未被分片数据偏移。...中,ip选项应该只复制第一个分片,这里会复制每一个分片中 memcpy(skb2->h.raw, raw, hlen); // 复制数据部分,长度为len,ptr指向原...*/ if (left > 0 || (is_frag & 1)) iph->frag_off |= htons(IP_MF); // 更新数据指针和偏移...1 申请一个新内存,把待分片报文中mac头、ip头,复制新内存,然后数据部分切一块继续复制内存后面。...如此,直到分片完毕 2 修改ip报文中一些字段值 ,比如MF。 3 底层接口逐个发送分片 分片逻辑不算复杂,不讲解太详细了。

92110
  • 分类&XDES Entry(3)---独立表空间结构(二十九)

    附属某个段区(FSEG):每个索引都有叶子节点段和非叶子节点段,除此之外innoDB还会定义一些特殊作用段,这些段数据量很大时,将使用区来作为基本分配单位。 这四种类型称为区状态state。...再次强调一下FREE、FREE_FRAG、FULL_FRAG因为是碎片区,这是直属于表空间管理,而最后FSEG是直接属于某个段。...插入数据,先看free_frag是否有空闲碎片区,有的话直接存进去,没有则去申请free碎片区,然后把free碎片区升级为free_frag碎片区,当free_frag碎片区存储满时候,则会吧free_frag...这样我们查找时候,只需要看free frag链表是否为空,不为空则插入当前碎片区,为空则去free链表新增free碎片区,并且修改state字段,当free_frag充满之后,也会修改state字段...当数据占满32个零散页后,就会升级属于某个特定段区。 那还是回到之前问题,如何区分属于哪个段呢,直接把整个链表属于哪个段?

    40310

    Jetpack组件之Navigation

    Fragment切换包括对AppBar管理、Fragment间切换动画以及Fragment间参数传递。在此过程中实现代码比较复杂混乱。...使用Safe Args Gradle插件,该插件可以生成简单对象和构造器类,支持在destination之间进行类型安全导航和参数传递。...当用户通过显式深层链接打开您用时,任务返回堆栈会被清除,并被替换为相应深层链接页面。当用户深层链接页面按下返回按钮时,他们会返回到相应导航堆栈。...在触发隐式深层链接时,返回堆栈状态取决于是否使用 Intent.FLAG_ACTIVITY_NEW_TASK 标志启动隐式Intent。...定制FragmentNavigator 阅读FragmentNavigator源码时,可以看到页面切换时候使用是replace(),这会造成Fragment生命周期重启,界面数据重新加载,不能复用

    3K20

    InnoDB:表空间管理

    EXTENTS 区段是表空间内连续页集合。区段大小为1 MB。如果页大小为16Kb,则一个区段中可能有64页。 因此,我们再次查看表空间文件,它是区段集合。 ?...= 16384 因此,一旦表空间大小超过16384页,我们需要分配一个新XDES页以保留更多数据区(待分配)。...注1: FRAG ARRAY中页属于一个区段,该区段是FRAG_FULL / FRAG_FREE列表一部分(即,文件段ID为0),并保留在表空间页头中。如前所述,这些区段中页被许多段共享。...随着索引大小增长(即B增长), 新页在FRAG ARRAY中分配。 当需求跨越32页后,便会将一个区段分配给文件段并将其移至“FREE 列表”。...一旦使用了该区段页,该区段将移至“NOT FULL列表”。 一旦使用了该区段所有页,它将移至“FULL列表”并分配新区段(与步骤3相同)。 根页删除索引后,我们将知道两个文件段。

    1.4K30

    Flutter & GLSL - 叁 | 变量传参

    Flutter & GLSL 系列文章: 《Flutter & GLSL - 壹 | Shader 让绘制无限强大》 《Flutter & GLSL - 贰 | 坐标颜色》 《Flutter & GLSL...尺寸入参开始说起 上一篇介绍了,在着色器中坐标和颜色关系,将坐标归 1 后留下一个问题: 如何让着色器代码中 size 不写死,由外界传递呢?...表示用于在 a, b 个值在 t 分度时线性混合。 举个小例子:8 和 24 在 0.4 处混合值是 8 + (24 -8)*0.4 对于多维值,就是各个分量混合值。...纹理图片传参 下面来看一下如何 Flutter 中如何将一张图片数据作为入参传递为着色器代码,比如把一张可爱女孩照片展示屏幕上: 着色器代码中,通过 uniform 声明 sampler2D 类型对象表示贴图变量...,并设置对应数据传递给着色器代码,注意参数索引顺序要对应好: ---->[lib/paint/shaders/var_demos/v4_painter.dart]---- class V4ShaderPainter

    14010

    Shader-简单顶点片元着色器

    返回一个float4,它是该顶点在裁剪空间中位置,通过SV_POSITION定义,UNITY_MATRIX_MVP是Unity内置模型-观察-投影矩阵. float4 frag() : SV_Target...,用户输出颜色存储一个渲染目标. ---- 当我们需要更多模型数据时候,我们将为顶点着色器定义一个新参数,这个参数将是一个结构体,结构体中包含了法线 切线 纹理坐标等诸多数据 struct a2v...表示a(application) v(vertex shader),表示数据应用阶段传递到顶点着色器中 POSITION等语义中数据MeshRender中传递过来,每帧调用DrawCall时候...,MeshRender将他负责渲染数据传递给UnityShader....在给顶点着色器传参数时候传a2v结构体 我们声明一个结构体v2f,用于在顶点着色器和片元着色器之间进行传递数据, struct v2f { float4 pos : SV_POSITION

    1.2K20

    ASM 翻译系列第二十九弹:ASM INTERNAL Free Space Table

    (free状态)AU,ASM Free Space Table 简称FST表就是提供一个这样功能,通过它可以快速知道哪些allocation table(AT表)元数据块中有空闲AU,它存储是一个个...例如下面的输出代表了,FST块位于磁盘头块1,也就是AU 0第二个块。(块0开始编号)。...16 ; 0x01a: FREE=0x0 FRAG=0x1 kfdfse[3].fse: 16 ; 0x01b: FREE=0x0 FRAG=0x1 ......113792 ; 0x0c0: 0x0001bc80 以上显示了stride大小为113792个AU,由于AU是0开始编号,因此第一个stride最后AU号是AU 113791,我们可以推算出第二个...对Oracle 并行机制、数据库异常恢复方法、ASM等有深入研究,人称”Oracle Internal达人”,对企业数据库架构设计、故障恢复、高并发下数据库性能优有丰富经验,擅长等待事件角度分析解决数据库性能问题

    92840

    《Linux Device Drivers》 第十七章 网络驱动程序——note

    内核才将分散数据传递给hard_start_xmit函数 struct skb_frag_struct struct page *page; __u16 page_offset; __u16 size...; 数据接收 网络上接收数据要比数据传输复杂一点。...dev_alloc_skb函数返回值 一旦拥有一个合法skb指针,则调用memcpy将数据数据复制缓冲区内 最后。...如今開始启动轮询接口 用netif_receive_skb函数将数据传递给内核,而不是使用netif_rx 调用netif_rx_complete关闭轮询函数 链路状态改变 大多数涉及实际物理连接网络技术提供载波状态信息...命令号是定义在中某个符号 函数sock_ioctl直接调用一个协议相关函数 不论什么协议层不能识别的ioctl命令都会传递设备层 这些设备相关ioctl命令用户空间接受第三个參数

    75040

    redis4.0 内存碎片整理源码解析

    引言 redis 作为一个内存型数据库,在使用中常常会遇到问题就是内存碎片问题。...redis 并没有维护自己内存池,而是直接通过操作系统中 malloc 族各个函数来实现在堆内存上动态分配和释放,这就增加了 redis 对内存管理复杂度,尤其是在频繁插入数据和删除数据场景下...很简单,只要重启 redis 服务,redis 会释放全部内存,并在重新启动时读取持久化文件,进行批量内存分配,内存碎片问题也就不存在了。...aeCreateTimeEvent 函数通过将第三个参数传入函数作为事件回函数,第四个参数作为回参数创建了一个时间事件并且添加到事件循环上,在 ae.c 中,他定义如下: long long aeCreateTimeEvent...需要注意是,redis4.0 整个事件循环均是在同一个线程中执行,因此,如果上述自动整理触发频率过高,或 timelimit 过长,都会直接影响 redis 本身工作性能,所以相关参数一定需要谨慎考虑

    1.2K10

    Innodb页合并和页分裂

    enter image description here 在插入数据时,如果插入记录可以容纳在该页内,则按顺序填充该页。 当页已经满时,下一条记录将插入下一页: ?...InnoDB角度看,它们是可以合并: ? enter image description here 合并操作结果是:第5页包含了之前数据和第6页数据。第6页变成了空页,可用于新数据。 ?...一旦分裂页创建,将其回收唯一方法是将创建页降至合并阈值下。当这发生时,InnoDB通过合并操作将数据分裂页迁移走。 另外一个组织数据方法是OPTIMIZE TABlE。...然后我开启一个事务(使用BEGIN),如下所示开始拷贝"frag"表中数据"ins_flag"中。...输出显示有52186次页分裂,产生了127.92MB碎片。 一旦发生页分裂,唯一方法是将创建页降至合并阈值之下。当这种情况发生时,InnoDB通过合并操作将数据分裂页中移出。

    3K20

    《Unity Shader入门精要》笔记:初级篇(1)

    //POSITION把顶点坐标填入V中,SV_POSITION顶点着色器输出是裁剪空间中坐标 float4 vert(float 4 v : POSITION...内置着色器变量:传送门 CG/HLSL语义:语义可以让Shader知道哪里读取数据(例如:COLOR0)。即使语义相同,位置不同表达意思也会不同。...应用阶段传递模型数据给顶点着色器时常用语义: 语义 描述 POSITION 模型空间顶点位置,float4 NORAML 顶点法线,float3 TANGENT 顶点切线,float4 TEXCOORD0...float2或float4 COLOR 顶点颜色,fixed4或float4 顶点着色器传递数据给片元着色器时常用语义: 语义 描述 SV_POSITION 裁剪空间中顶点坐标,必要语义 COLOR0...、COLOR1 通常用于输出第一、二组顶点颜色 TEXCOORD0-7 通常用语输出纹理坐标 片元着色器输出时常用语义 语义 描述 SV_Target 输出值存储渲染目标中,等同于DirectX9

    75040

    Android Studio如何实现音乐播放器(简单易上手)

    歌曲名下标是0开始,因为代码中我设置url地址是0开始,否则会闪退。 2、选择每首歌对应歌手图片,剪成圆形并且保存好,命名为music0、music1、music2等。...图片一定要剪成圆形,椭圆会影响运行效果,导致闪退,如果不太清楚图片如何剪成圆形,可以看这篇博客:如何将图片剪成圆形,也非常简单。...再次提醒下,注意命名哦;mp3歌曲文件在Android中打开是乱码,不用担心,也不需要打开它。 至此,完整音乐播放器项目创建完成。...: (2)点击专辑选项卡: (3)再选择歌曲选项卡,选择第一首歌《光年之外》并打开,跳转到音乐播放页面,歌手封面图片显示在正中间,发现《光年之外》歌名也传递过来了: (4)...六、项目总结 这次音乐播放器工程,可以让大家熟练掌握Android程序开发基本技术,涉及Android 基础知识、UI界面、数据存储、四大组件、网络编程、高级编程等。

    7.1K22

    Page management in InnoDB space files(4.InnoDB Space文件页管理)

    State:域的当前状态,目前只定义了四个值,FREE、FREE_FRAG、FULL_FRAG,这意味着该区域属于同名空间列表。以及FSEG,表示此区段属于文件段,其ID存储在文件段ID字段中。...Page State Bitmap:区段中每页2位位图,64*2=128位,或者16字节。第一位表示页面是否空闲,第二位是保留,用于指示页面是否干净,没有未刷新数据。...FULL_FRAG:与FREE_FRAG类似,但是对于没有剩余空闲页面的区段,当区段已满时候,区段将从FREE_FRAG移动到FULl_FRAG,当页面被释放时候,区段将移回FREE_FRAG,这时候区段就不再满了...片段数组:一个包含32个页号页面数组,这些页面分别从空间片段区段FREE_FRAG或者FULL_FRAG列表中区段分配,一旦该数组已满,就只能将完整区段分配给文件段。...如果最后使用NOT_FULL列表中区段释放,则区段可以移动到文件段空闲列表,但是实际上是直接移动回空闲列表。

    97421
    领券