将应用程序逻辑放在ADT 22.6.2生成的新活动代码中的何处

时间:2014-04-03 11:10:16

标签: android eclipse android-fragments

在最新版本的eclipse(ADT v22.6.2)中,create android应用程序现在生成一个activity_main.xml和一个fragment_main.xml。它只生成一个活动类 但是现在它有一个嵌入的内部静态片段类,它由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 onCreate方法中,例如findViewById之类的东西。听众 等

我接触它的方式是我将所有用户创建的视图作为静态PlaceHolderFragment类的成员。然后我在片段onCreateView中调用它。我仍然在活动中有一些逻辑,它存储一个指向片段的指针。它通过调用片段上的getter来更新视图成员。这是正确的还是应该将所有逻辑移动到片段? 所有教程/示例都使用旧方法,其中逻辑放在活动中 所以没有关于如何使用Eclipse为Android应用程序生成的新文件的参考文档。有什么帮助表示赞赏吗?

1 个答案:

答案 0 :(得分:2)

不要担心Eclipse自动生成的文件:你可以做任何你想做的事情!!!

Fragment是一个Activity和一个容器之间的元素。这意味着你可以将代码的逻辑放在一个片段中而不会出现问题。

理论上,当您想使用不同的模块,容器管理屏幕时,会使用片段。它是一个片段,一个模块,一个屏幕的一部分(但也可以在全屏幕中使用,看起来像一个活动,并且具有与一个活动相同的行为。)例如,假设您有手机屏幕,一个列表在一个屏幕上显示新闻,当您点击时,您的应用会转到下一个屏幕以显示新闻内容,对吧?好的,所以你可以使用这两个屏幕:每个活动有2个活动,或者有2个碎片的一个父活动...无论你想要什么......

想象一下同样的情况,对于平板电脑版的应用,现在屏幕的左侧部分应该显示新闻列表,在屏幕右侧,点击每个新闻的包含,对吧?在这种情况下,完全有必要使用一个带有两个片段的活动父母......在这种情况下,我们可以为手机或平板电脑重复使用几乎相同的案例。

现在,请关注你的问题:如果你不想让生活复杂化(不要太多,因为片段工作也很容易)我会建议你只使用你的应用程序的活动。

但是,就像你的问题,你想要移植,没有任何问题。现在想象一下,您的活动将只是您要​​管理片段的类。每个屏幕的逻辑必须在每个片段中。仅将活动用于替换片段,或在片段之间共享信息等。活动将像乐团指挥一样。

从每个片段,您可以使用((NameOfActivity)getActivity())访问活动的方法或公共变量。

你明白了吗?

还有一个东西,在片段中,通常我们用于初始化东西的方法是onCreateView(而不是onCreate like activities)。