gpt4 book ai didi

java - 如何管理具有一个 Activity 和多个 fragment 的Android应用程序?

转载 作者:行者123 更新时间:2023-12-01 11:09:38 32 4
gpt4 key购买 nike

我需要一些关于如何管理具有一个 Activity 和多个 fragment 的 Android 应用程序的帮助。我选择这种模式是因为我认为它可以使应用程序更加快速和高效(至少我从我对 fragment 的阅读中发现了这一点),但我坚持了最初的步骤。

事实是:

  • 我有一个主要 Activity,它管理一个工具栏和一个抽屉导航(左侧幻灯片菜单),它是一个 fragment ,并具有一个 FrameLayout(在 Activity 的 xml 中)来包含各种 fragment
  • 抽屉导航的每个声音都应该打开一个新 fragment
  • fragment 应该彼此共享数据(所以 Activity 是桥梁,对吧?)
现在:如果要在Fragment之间交换数据,我应该使用Activity作为桥梁,实现一个接口(interface)让Fragment-Activity相互通信,那么Activity如何实现多个接口(interface)来与Fragment上的多个Fragment进行通信和交换数据?

即:

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

如果我单击列表中的一项,我应该打开一个新 fragment (全屏大小,以便新 fragment 完全替换HomeFragment)显示有关单击的项目的一些详细信息。

我不能这样做,因为我的 Activity 已经实现了 navigationDrawer 的接口(interface),所以我如何在 Fragment 和 Activity 之间交换数据?

PS:抱歉我的英语不好,我希望我已经说清楚了

最佳答案

一个 Activity 可以实现任意数量的 fragment ,例如:

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

@Override
public void onAppleInteraction(int quantity_sold) {
}

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

上面的代码展示了如何轻松地让一个 Activity 实现两个 fragment 。

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

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);
}
}

关于java - 如何管理具有一个 Activity 和多个 fragment 的Android应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32525789/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com