【问题标题】:Best way to communicate between activity and fragment [duplicate]在活动和片段之间进行通信的最佳方式[重复]
【发布时间】:2016-10-12 16:52:18
【问题描述】:

我正在创建一个活动,它具有显示多个片段的 viewpager 以及一个“继续”按钮。按钮用于移动到下一个片段,模仿 viewpager 的滑动特性。

我的片段非常独立于活动,并且希望在发生某些事情时将结果传达给父活动,例如片段内的编辑文本值发生更改。

通知活动有关片段内部发生变化的最佳方式应该是什么?片段不应该知道谁是父活动。

提前致谢。

【问题讨论】:

  • 由于您在主活动中加载片段,如果您使用findviewbyid 将片段中的项目获取到主活动中,则应该可以从主活动中访问片段中的项目。
  • 最好的方法是:simpledeveloper.com/…
  • 在 youtube 上试试这个.. 视频.... youtube.com/watch?v=WssDyQ2m4rY

标签: android android-fragments android-activity


【解决方案1】:

您需要将 OnFragmentInteractionListener 接口放入您的片段中:

public interface OnFragmentInteractionListener {
    public void onFragmentInteraction(String id);
}

并通过以下方式在您的活动中实施它 “实现 .OnFragmentInteractionListener” 并在您的活动中包含以下方法

@Override
public void onFragmentInteraction(String id) {
    // Do something here
}

https://developer.android.com/training/basics/fragments/communicating.html

【讨论】:

    【解决方案2】:

    最好的方法是使用某种观察者模式,其中活动可以注册到附加片段并实现接口,每次内部发生变化时片段都会调用该接口。

    更详细的答案:

    http://simpledeveloper.com/how-to-communicate-between-fragments-and-activities/

    【讨论】:

      【解决方案3】:

      你需要使用这个库,你可以在你的应用程序中的任何地方进行通信:

      https://github.com/greenrobot/EventBus

      【讨论】:

        猜你喜欢
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 2020-02-20
        • 1970-01-01
        • 2022-08-22
        • 1970-01-01
        相关资源
        最近更新 更多