如何使用一个活动和多个片段管理Android应用程序?

时间:2015-09-11 14:25:28

标签: java android android-fragments

我需要一些帮助来管理一个活动和许多片段的Android应用程序。 我选择这种模式是因为我认为它可以使应用程序更加快速和有效(至少我从我对片段的读数中得出结论)但我坚持自己的第一步。

事实是:

  • 我有一个主要活动管理工具栏和导航抽屉(左侧幻灯片menù),它是一个片段,并且有一个FrameLayout(在活动的xml中)以包含各种片段
  • 导航抽屉的每个声音都应该打开一个新片段
  • 片段应该相互共享数据(所以活动就是桥梁,对吗?)

现在: 如果要在片段之间交换数据,我应该使用活动作为桥梁,实现一个让片段活动相互通信的接口,活动如何实现更多的一个接口与片段上的更多信息进行通信和交换数据?

即:

假设我有一个 HomeFragment ,它是应用程序的主视图。 在这个片段中,我有一个处理项目列表的 RecyclerView

如果我点击列表中的一个项目,我应该打开一个新片段(全屏大小,以便新片段完全替换) HomeFragment)显示点击项目的一些细节。

我不能这样做,因为我的活动已经为navigationDrawer实现了一个接口,所以如何在片段和活动之间交换数据呢?

PS:对不起,我的英语不好,我希望我很清楚

1 个答案:

答案 0 :(得分:1)

活动可以实现任意数量的碎片,例如:

public class MyActivity extends FragmentActivity implements
    AppleFragment.OnAppleInteractionListener, 
    OrangeFragment.OnOrangeInteractionListener {    

    @Override
    public void onAppleInteraction(int quantity_sold) {
    }

    @Override
    public void onOrangeInteraction(int quantity_sold) {
    }
}

上面的代码显示了如何轻松地让一个活动实现两个片段。

在单独的文件中,您必须像这样定义片段:

public class AppleFragment extends Fragment {
    public interface OnAppleInteractionListener {
    void onAppleInteraction(int quantity_sold);
    }
}

public class OrangeFragment extends Fragment {
    public interface OnOrangeInteractionListener {
    void onOrangeInteraction(int quantity_sold);
    }
}