我有一个应用程序,它只是一个计时器,在主要 Activity 中有一大堆特殊方法。这很好用,没有问题。现在,我让它工作了,我试图将它包含在一个更复杂的应用程序中,我将通过 fragment 在许多地方插入计时器。
我应该在我的 fragment Activity 中包含我所有的特殊方法吗?即:
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?
}
或者我应该将它们包含在我的主目录中吗?
我问是因为我已经尝试了两种方法, fragment Activity 方式在 java 中给我带来了错误,但是将它们放在我的 main 中却让我在运行时出错。基本上我有一个计时器作为独立应用程序运行良好,但我试图将它转换成一个 fragment ,以便我可以将它插入我应用程序的多个位置。
“特殊方法”的例子: 我在布局中查看并根据计时器上输入的新数字更新它。这些方法要求 View 在使用前膨胀。
注意:我遇到的运行时错误是 nullPointerExceptions。
最佳答案
Fragment 背后的想法是,它是 Activity 的可重用部分(即 fragment ),可以在其他 Activity 中使用,甚至可以在添加或不添加其他 Fragment 的同一 Activity 中使用。
例如,在 Gmail 应用程序中,收件箱中所有电子邮件的列表是一个 Fragment,而电子邮件的实际内容是另一个 Fragment。在横向模式的平板电脑上,两者都会显示。然而,纵向模式下的手机一次只会显示两个 fragment 之一。
因此,每个 Fragment 都应封装使用该 Fragment 所需的所有功能和 UI 组件。这意味着您所有的“特殊”方法(例如扩展 Fragment 的 View XML)都应该在 Fragment 中发生。
使用 Fragment 的 Activity(或 Activity)应该只需要使用 FragmentManager(或类似方法)将 Fragment 添加到 Activity 的布局中。 fragment 的父 Activity 还应处理 fragment 与其他组件(例如其他 Activity 、 fragment 或线程)之间的通信。
关于java - 了解 fragment Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713952/