参考:Fragment Documentation
我是Java和AndroID的新手,正在阅读在线androID指南.我有两个问题:
问题1:为什么需要在
公共静态课?
问题2:“创建新实例”进一步声明了一个新的DetailsFragment.总体
在四个地方使用了相同的名称“ DetailsFragment”.这非常令人困惑.
请解释?
public static class DetailsFragment extends Fragment { /* Create a new instance of DetailsFragment, initialized to show the text at 'index'. */ public static DetailsFragment newInstance(int index) { DetailsFragment f = new DetailsFragment(); // Supply index input as an argument. Bundle args = new Bundle(); args.putInt("index", index); f.setArguments(args); return f; }}
解决方法:
这就是所谓的static factory method
pattern,在这种情况下,您可以轻松创建带有所有必需参数的片段的新实例,而无需了解内部实现.例如,如果没有此功能,则要创建一个正确初始化的Fragment实例,可以使用:
DetailsFragment fragment = new DetailsFragment();Bundle args = new Bundle();args.putInt("index", index);fragment.setArguments(args);// Then use the fragment however you need it
使用静态工厂方法,所有这些逻辑都被内部化为Fragment本身,您可以简单地使用:
DetailsFragment fragment = DetailsFragment.newInstance(index);// Then use the fragment
总结 以上是内存溢出为你收集整理的为什么在公共静态类中实例化一个新片段全部内容,希望文章能够帮你解决为什么在公共静态类中实例化一个新片段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)