我原本以为我的转换片段非常好做,直到我旋转屏幕。我收到以下类型的错误:Android的碎片重新实例化错误
RuntimeException:无法启动活动ComponentInfo {com.ghcssoftware.gedstar/com.ghcssoftware.gedstar.GedStar}:android.support.v4.app.Fragment $ InstantiationException:Unable to实例化片段com.ghcssoftware.gedstar.PersonTab $ PersonTabFrag:确保类名存在,是公共的,并且具有公共的空构造函数
有问题的类确实存在,是公共的,并且我添加了一个空构造函数结果没有变化。看一些示例代码,我注意到与我的代码编写方式有一些区别,尽管我没有看到空构造函数:
1)是否有任何理由将我的片段类声明为“static”很多样本是?
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软件
我不知道什么与您的旋转问题的发生,但这页面描述静态类声明的目的是:http:/ /www.javaworld.com/javaworld/javaqa/1999-08/01-qa-static2.html – goto10