Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >Android片段:真的需要空构造函数吗?

Android片段:真的需要空构造函数吗?
EN

Stack Overflow用户
提问于 2014-09-22 14:29:42
回答 1查看 4.4K关注 0票数 5

我有一个带有寻呼机和FragmentStatePagerAdapter的活动(我需要在许多页面上滑动)。我们都知道,这个适配器一次创建3个片段实例,要显示的实例、前一个实例和下一个实例。

我的活动非常好,使用了一个只有一个构造函数的片段:它接收了一个参数。在测试时,我开始收到一条臭名昭著的消息:

代码语言:javascript
代码运行次数:0
复制
Unable to instantiate fragment: make sure class name exists, is public, 
and has an empty constructor that is public 

有趣的是,这条信息只有在方向改变后才会显示出来,但是如果定位保持不变,应用程序就会工作。所以,

  1. 为什么它在方向不变的时候起作用呢?
  2. 为什么当方向改变时,它就失败了?
  3. 当定向改变与刚刚创建的活动时,片段生命周期中的活动有什么不同?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-22 14:37:26

是否真的需要空构造函数?

是。

为什么它在方向不变的时候起作用呢?

因为Android并不是想重新创建你的碎片。

为什么当方向改变时,它就失败了?

因为Android正在重建你的碎片。

当发生配置更改(例如,方向更改)时,默认情况下,Android会破坏和重新创建您的活动,还会破坏和重新创建该活动中的片段。“重新创建片段”部分是为什么需要在片段上使用零参数公共构造函数的原因。它也在其他情况下使用,例如与FragmentStatePagerAdapter

或者,引用the documentation的话

所有片段的子类都必须包含一个公共的空构造函数。当需要时,框架通常会重新实例化一个片段类,特别是在状态恢复期间,并且需要能够找到这个构造函数来实例化它。如果空构造函数不可用,在某些情况下,在状态恢复期间会出现运行时异常。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25984054

复制
相关文章
我们真的需要JWT吗?
JWT(JSON Web Token)是目前最流行的认证方案之一。博客园、各种技术公众号隔三差五就会推一篇JWT相关的文章,真的多如牛毛。但我对JWT有点困惑,今天写出来跟大家探讨探讨,不要喷哈。
MJ.Zhou
2020/09/01
1.6K0
我们真的需要JWT吗?
你真的需要消息队列吗
企鹅号小编
2018/01/05
1.4K0
你真的需要消息队列吗
我们真的需要模型压缩吗?
模型压缩是边缘设备部署的常用技术。可是为什么要压缩模型呢?模型可压缩说明参数过量,那为什么不从头开始训练一个合适参数量的模型呢?以及我们可以通过使用更聪明的优化方法来直接减少参数吗?请看下面分解。
McGL
2020/11/10
1.3K0
我们真的需要模型压缩吗?
您的组织真的需要 Kubernetes 吗?
petecheslock在 Twitter 上表达了对无处不在的 Kubernetes 的批评观点:
用户5166556
2023/09/07
2280
您的组织真的需要 Kubernetes 吗?
我们真的需要5G吗?
3G:速度2Mbps至80Mbps,时延100ms-400ms,终端连接 1万台;4G:速度100Mbps至1Gbps,时延40ms-150ms,终端连接10万台;5G:速度1Gpbs-10Gpbs,时延1ms-10ms,终端连接100万台。
边缘计算
2021/12/09
3670
我们真的需要5G吗?
我们真的需要全栈开发吗?
点击关注公众号,Java干货及时送达 Web应用程序的开发涉及许多活动,例如: 捕获用户故事 创建原型设计 开发核心组件 构建原型 开发可运行的应用程序 部署 测试 最终被企业用户接受 Web应用程序开发的整个生命周期需要用到很多技术。近来,我们看到全栈开发人员的需求持续高涨。 假设有一个足球队(或其他任何体育团队)。我们需要专业的前锋、中场、后卫,还有一个守门员。有时,全能选手可以帮助我们赢得一场比赛甚至一系列比赛。但是,所有团队都需要一些专业人士。全栈开发人员很有必要,但仅靠全栈开发还不够。 为什么我
Java技术栈
2022/03/03
5170
你真的需要Apple TV吗?不如自制一个Android TV!
去年我写了一篇《树莓派家用指北》,介绍了树莓派是如何作为家庭服务器改善我的生活的,指路链接 👉 树莓派家用指北 今天我们的主角依旧是我的那个树莓派,只是以另一种形式在我的家里发光发热——电视盒子。 看到这可能有人会好奇,这个树莓派用作电视盒子后,原先的家庭服务器怎么办?事实上我之所以把这个树莓派做成电视盒子,第一个原因是我搬家了,需要重新升级规划下家里的软件系统,第二是我用 NAS 替代了原先的树莓派用作家庭服务器(有机会的话以后讲一下)。 所以为了不让这个“理财产品”就这么吃灰下去,我一直积极探索可能的
出其东门
2022/12/05
3.5K1
你真的需要Apple TV吗?不如自制一个Android TV!
我们真的需要8K电视吗?
原文:https://www.techradar.com/news/do-we-really-need-8k-tvs-yet
用户1324186
2018/07/26
8030
我们真的需要8K电视吗?
你真的需要自动化测试吗?
前几天在技术交流群,有同学抛了一个关于自动化测试的思维导图,问大家有什么好的建议。
老_张
2022/09/02
2640
你真的需要自动化测试吗?
Transformer真的需要注意力吗?
近年来,基于自注意力特别是 Transformer 的方法大量涌现,首先是在自然语言处理领域,最近在计算机视觉领域。
McGL
2021/07/07
6930
你真的知道『立即执行函数』吗?
立即地 调用 (函数 表达式 )
用户9914333
2022/07/22
6370
你真的了解JS的函数吗?
如果function foo(){}是作为赋值表达式的一部分的话,那它就是一个函数表达式
Jou
2022/08/10
7230
你的企业真的需要“数据中台”吗?
数据中台包括平台、工具、数据、组织、流程、规范等一切与企业数据资产如何用起来所相关的。
数澜科技
2019/09/29
1.8K0
你的企业真的需要“数据中台”吗?
Android权限机制,你真的了解吗?
一、Android的权限机制 Android是目前最流行的智能手机软件平台之一,在智能移动终端如火如荼发展的同时,其安全态势也日益严峻。有调查表明,恶意软件的数量在持续的上升,Google在Android安全机制上面也做了很多工作,并且一直在持续的更新,其Android的安全模型由3个部分组成:Linux安全机制、Android本地库及运行环境安全与Android特有的安全机制,如下图: 本文只涉及到其中的权限机制介绍,其他的部分如果有感兴趣的,我们可以后续一起探讨。 Android的权限管理遵循的是
腾讯移动品质中心TMQ
2018/02/05
6.6K0
Android权限机制,你真的了解吗?
你真的需要了解多种编程语言吗?
  英文原文:Do You Need To Know More Than One Language  我在谋杀自己的职业生涯。没错,很多人都这样说我。   我的同事刚刚得知我即将离开公司的消息。大多数表示理解。但让他们困惑的是,我现在的公司是一家 Windows 商店,用 C# 和 .net 编写代码。然而,我要去担任的是 Linux 环境下主要语言为 Java 的开发工作。因为语言的改变,他们觉得我抛弃了自己的优势,抛弃了自己这么多年的工作经验,正在自寻死路。很多人都秉持这样的观点。   编程语言
春哥大魔王
2018/04/17
8480
你真的需要了解多种编程语言吗?
李书福真的需要「吉利牌手机」吗?
点击图片立刻参与! “Geely for phone”跟“Flyme for car”一样,都充满了想象空间。 作者 | 来自镁客星球的家衡 本周,关于吉利收购珠海魅族的传闻最终靴子落地,期待已久的“煤油们”终于能松口气说一句:“活着就好。” 根据公示信息,吉利旗下的湖北星纪时代科技有限公司(简称“星纪时代”)将持有珠海魅族79.09%的股权,而魅族创始人黄章的股份将降至9.79%,淘宝中国则退出对魅族的持股与控制。当交易完成后,魅族也将成为吉利集团名副其实的子公司,纳入其“科技版图”。 除此以外,业内
镁客网
2022/06/16
3630
李书福真的需要「吉利牌手机」吗?
Android 项目架构,你真的了解吗?
为了帮助开发着打造一款优秀的APP,Google可谓费尽心力,推出了各种诸如MVP,MVVM等等项目架构的思路,帮助开发者更加高效的开发,尽管这样,Google还是接着推出了一个新的项目架构,以便给予开发者更多的选择,至于这种架构思路和MVP等框架的优劣,各位看完文章或许自有定论。
Android架构
2019/06/04
1.4K0
Android 项目架构,你真的了解吗?
构造函数调用子类的方法,写过吗?
这段示例代码,类Derive派生于Base,Base的构造函数与虚构函数均调用虚函数GetValue(),根据C++多态特性,应该是要调用Derive的GetValue()返回2,真的是这样吗?让我们看下最终的输出。
gaigai
2021/04/13
1.4K0
构造函数调用子类的方法,写过吗?
你真的需要了解多种编程语言吗?
你真的需要了解多种编程语言吗? 我在谋杀自己的职业生涯。没错,很多人都这样说我。 我的同事刚刚得知我即将离开公司的消息。大多数表示理解。但让他们困惑的是,我现在的公司是一家Windows商店,用C#和.net编写代码。然而,我要去担任的是Linux环境下主要语言为Java的开发工作。因为语言的改变,他们觉得我抛弃了自己的优势,抛弃了自己这么多年的工作经验,正在自寻死路。很多人都秉持这样的观点。 编程语言很多很多,数以百计。有些很常见,如Java,C#,PHP,Ruby,Python和JavaScript,而
用户1289394
2018/02/27
8570
你真的需要了解多种编程语言吗?
C++构造函数 | 构造函数
C++在建立一个对象时,常常需要作某些初始化,如果一个数据成员未被赋值,则它的值是不可预知的,因为在系统为它分配内存时,保留了这些存储单元的原状,这就成为了这些数据成员的初始值,在C++中,对象是一个实体,它反映了客观事物的属性,是应该有确定的值的。
小林C语言
2021/01/26
2.2K0
C++构造函数 | 构造函数

相似问题

我们真的需要空吗?

44

我真的需要这个tsx组件的构造函数吗?

15

接口真的没有构造函数吗?

32

JPA:默认构造函数需要为空吗?

30

React本机真的支持Android片段吗?

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档