Android Fragment重新实例化错误

Android Fragment重新实例化错误,第1张

概述在我旋转屏幕之前,我以为我已经完成了对片段的转换.我收到以下类型的错误: RuntimeException:无法启动活动ComponentInfo {com.ghcssoftware.gedstar / com.ghcssoftware.gedstar.GedStar}:android.support.v4.app.Fragment $InstantiationException:无法实例化片段c 在我旋转屏幕之前,我以为我已经完成了对片段的转换.我收到以下类型的错误:

RuntimeException:无法启动活动ComponentInfo {com.ghCSSoftware.gedstar / com.ghCSSoftware.gedstar.GedStar}:android.support.v4.app.Fragment $InstantiationException:无法实例化片段com.ghCSSoftware.gedstar.PersonTab $PersonTabFrag:make确定类名存在,是公共的,并且具有公共的空构造函数

有问题的类确实存在,我添加了一个空构造函数,结果没有变化.看一些示例代码,我注意到与编写代码的方式有些不同,尽管我没有看到空构造函数:

1)我的片段类是否应该被声明为“静态”,因为有很多样本?

2)我是否需要在片段类中实现“newInstance”的使用?为什么这样做而不是只有一个构造函数?例如,来自其中一个V14样本:

public static class CountingFragment extends Fragment {    int mNum;    /**     * Create a new instance of CountingFragment,provIDing "num"     * as an argument.     */    static CountingFragment newInstance(int num) {        CountingFragment f = new CountingFragment();        // Supply num input as an argument.        Bundle args = new Bundle();        args.putInt("num",num);        f.setArguments(args);        return f;    }

我对一些Java概念仍然有些不熟悉,所以可能会遗漏一些基本的东西.

道格戈登
  GHCS软件

解决方法

Is there any reason that my fragment class should be declared “static” as many samples are?

只有它是某种内在的东西.既然你的内容似乎是PersonTab的内部类,那么它将需要是静态的.或者,将它移到PersonTab之外作为独立的java类.

Do I need to implement the use of “newInstance” within my fragment class? Why is this done instead of just having a constructor?

这只是一种工厂方法.框架不要求它.

总结

以上是内存溢出为你收集整理的Android Fragment重新实例化错误全部内容,希望文章能够帮你解决Android Fragment重新实例化错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存