java - 实现 Fragment 到 Activity 的通信而不直接在 Activity 中实现接口(interface)

标签 java android android-fragments interface

我有一个主要的activity,负责在不同的fragment之间切换。这些 fragment 具有 Activity 需要实现的接口(interface),以便 fragment 将数据发送回 Activity 。

目前,我将 fragment 中 onAttach 方法的上下文转换为 fragment 中指定的特定接口(interface)的实例。但是,由于 Activity 类必须实现所有这些才能使转换工作,因此接口(interface)中指定的方法也需要直接在类中实现。

我想做的是创建这些接口(interface)的实例并将它们保存到类变量中。问题是如何将引用传递给 fragment ?该过程应尽可能通用,以便于添加 fragment 。

所以代替传统方式

class MyActivity extends Activity implements MyFragmentListener {
    public void myFragmentMethod() {
        // ...
    }
}

我想要的是

class MyActivity extends Activity {
    private MyFragmentListener myFragmentListener = new MyFragmentListener() {
        public void myFragmentMethod() {
            // ...
        }
    };
}

问题是如何将接口(interface)实现告知 fragment 。使用 BroadcastReceiver 可以,但看起来有点乱。

最佳答案

EventBus

又不是脏东西☺️ 试一试,你很快就会上瘾的…… 它专为像您这样的情况而设计,而且使用起来 super 简单。 您定义了一个类,您可以添加参数、方法等等……您只需填充所需的事件(使用类名),天空是这里的极限。 EventBus

你会在那里看到描述

关于java - 实现 Fragment 到 Activity 的通信而不直接在 Activity 中实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45402072/

相关文章:

java - Java 中的套接字编程

java - 将字节数组转换为 double

android - 如何在android fragment 中正确实现接口(interface)?

android - 菜单图标未显示在操作栏中

java - MapActivity 上的 AutoCompleteTextView 不起作用

java - Android,创建自定义 ImageView 形状

java - 在 FirebaseStorage 中的 Activity 销毁后调用 OnComplete

java - 检测 Whatsapp 通话并暂停 ExoPlayer

java - android UI实现意见

android - 如何在选项卡中添加 float 操作按钮?