在最新版本的 eclipse (ADT v22.6.2) 中,创建 android 应用程序现在会生成一个 Activity_main.xml 和一个fragment_main.xml。它只生成一个 Activity 类 但现在它有一个嵌入的内部静态 fragment 类,该类是由 Activity 在其 onCreate 方法中创建的
@Override
protected void onCreate(Bundle savedInstanceState) {
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
....
public static class PlaceholderFragment extends Fragment
我的困惑是如何移植只有 1 个 Activity 和主应用程序的旧代码/示例 逻辑通常放在 Activity onCreate 方法中,即像 findViewById 这样的东西。听众 等等
我的处理方法是将所有用户创建的 View 作为静态 PlaceHolderFragment 类的成员。然后我在 fragment 中调用它 onCreateView。我在 Activity 中仍然有一些逻辑,它存储指向 fragment 的指针。它通过调用 fragment 上的 getter 来更新 View 成员。这是正确的还是现在应该将所有逻辑移至 fragment ? 所有教程/示例都使用旧方法,其中逻辑放置在 Activity 中 因此没有关于如何使用 Eclipse 为 Android 应用程序生成的新文件的引用文档。有什么帮助吗?
最佳答案
不用担心 Eclipse 自动生成的文件:您可以做任何您想做的事情!!!
Fragment 是 Activity 和容器之间的一种元素。这意味着您可以将代码逻辑放入一个 Fragment 中,不会出现任何问题。
理论上,当您想要使用不同的模块、容器来管理屏幕时,可以使用 fragment 。它是一个 fragment 、一个模块、一个屏幕的一部分(但也可以在全屏中使用,看起来像一个 Activity ,并且具有与一个 Activity 相同的行为。)例如,想象一下,对于手机屏幕,有一个列表在一个屏幕上显示新闻,当您单击时,您的应用程序会转到下一个屏幕以显示新闻内容,对吧?好的,所以您可以用于这 2 个屏幕:每个 Activity 有 2 个 Activity 或一个带有 2 个 fragment 的父 Activity ...无论您想要什么...
想象一下同样的情况,对于您的应用程序的平板电脑版本,现在您应该在屏幕的左侧显示新闻列表,在屏幕的右侧显示单击的每个新闻的包含,对吧?在这种情况下,完全有必要使用一个具有两个 fragment 的 Activity 父级...在这种情况下,我们可以为手机或平板电脑重用几乎相同的情况。
现在,专注于你的问题:如果你不想让生活变得复杂(不要太多,因为使用 fragment 也很容易),我会建议你只为你的应用程序使用 Activity 。
但是,就像你的问题一样,你想要移植,没有任何问题。现在想象一下,您的 Activity 将只是您要管理 fragment 的类。每个屏幕的逻辑必须位于每个 fragment 中。该 Activity 仅用于替换 fragment ,或在 fragment 之间共享信息等。该 Activity 将类似于管弦乐队指挥。
在每个 fragment 中,您可以使用 ((NameOfActivity)getActivity()) 访问 Activity 的方法或公共(public)变量。
你清楚了吗?
还有一个东西,在 fragment 中,通常我们用于初始化东西的方法是 onCreateView (而不是 onCreate 之类的 Activity )。
关于android - 在 ADT 22.6.2 生成的新 Activity 代码中放置应用程序逻辑的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835745/