我有应用程序,它只是一个计时器,在主要活动中有一大堆特殊方法。这很好用,没有任何问题。现在,我有它工作,我试图将它包含在一个更复杂的应用程序中,我将通过片段在许多地方插入计时器。
我应该在片段活动中包含所有特殊方法吗? IE:
public class Timer_fragment extends android.support.v4.app.Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.timer_frag, container, false);
}
//SHOULD I insert my special methods here?
}
或者我应该将它们包含在我的主要内容中?
我问,因为我已经尝试了两种方式,并且片段活动方式在java中给了我错误,但是将它们放在我的main中会在运行时给出错误。基本上我有一个作为独立应用程序运行良好的计时器,但我正在尝试将其转换为片段,以便我可以将其插入我的应用程序中的多个位置。
“特殊方法”的例子: 我在布局中查看并根据计时器上输入的新数字进行更新。这些方法要求视图在使用之前要充气。
注意:我遇到的运行时错误是nullPointerExceptions。
答案 0 :(得分:2)
片段背后的想法是它是一个活动的可恢复部分(即片段),可以在其他活动中使用,甚至可以在同一个活动中使用,但是可以添加或不添加其他片段。
例如,在Gmail应用中,收件箱中所有电子邮件的列表都是一个片段,电子邮件的实际内容是另一个片段。在横向模式下的平板电脑上,都会显示。但是,纵向模式的手机只会同时显示两个碎片中的一个。
因此,每个Fragment都应该封装使用该Fragment所需的所有功能和UI组件。这意味着所有“特殊”方法(如夸大Fragment的视图XML)都应该在Fragment中进行。
利用Fragment的Activity(或者Activity)应该只需要使用FragmentManager(或类似的方法)将Fragment添加到Activity的布局中。片段的父Activity也应该处理片段与其他组件(如其他活动,片段或线程)之间的通信。