java - 了解 fragment Activity

标签 java android android-fragments android-fragmentactivity

我有一个应用程序,它只是一个计时器,在主要 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/

相关文章:

通过 SSL 使用 Web 服务的 Java 小程序

java - 包 org.springframework.boot 不存在

android - 如何将应用程序生成的文件存储在Android的 "Downloads"文件夹中?

android - 可以转换为分贝形式的音频输出电平

java - 抽屉导航中的按钮

java - Spring数据与关系表的序列化

java - Java 中的原子性和内存顺序

android - Android 上的 SDL2 事件循环 - 无法将任何新事件推送到队列中

android - FragmentManager.put/getFragment 与 findFragmentByTag

android - 膨胀类 fragment Android Map v2 时出错