我有应用程序,在那里它只是一个定时器,其中一个定时器在主要活动中具有一系列特殊方法。这没有任何问题。现在,我已经工作了,我试图将它包含在一个更复杂的应用程序中,在那里我将通过碎片在众多地方插入计时器。

我应该在我的片段活动中包含我所有的特殊方法吗?即:

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中的错误,但在我的主要过程中将它们放在运行时给了我错误。基本上我有一个像独立应用程序一样繁荣的计时器,但我正在尝试将它转换为一个片段,以便我可以将它插入我的应用程序中的多个位置。

“特殊方法”的例子: 我在布局中拍摄了一个视图,并根据计时器上输入的新数字进行更新。这些方法需要在使用之前膨胀。

注意:运行时的错误我遇到的是nullpointerexceptions。

有帮助吗?

解决方案

碎片背后的想法是它是可以在其他活动中使用的活动的可救助部分(即片段),或者甚至在相同的活动中,而是在添加或不存在其他片段中。

在Gmail应用中,收件箱中的所有电子邮件列表是一个片段,电子邮件的实际内容是另一个片段。在横向模式下的平板电脑上,显示出来。然而,在纵向模式下的电话只会显示两个碎片中的一个。

因此,每个片段都应封装使用该片段所需的所有功能和UI组件。这意味着所有的“特殊”方法如膨胀片段的视图XML都应发生在片段内。

使用片段的活动(或活动)只需要使用FragmentManager(或类似方法)将片段添加到活动的布局中。片段的父活动还应处理片段和其他组件之间的通信,例如其他活动,片段或线程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top