Activity 如何从其适配器获取接口调用

how can an Activity get interface calls from its adapter

我有一个 activity,它有一个 listview 和一个 adapter。我从适配器调用 Dialog 片段 并且对话片段执行一些事件并编写接口以将结果发送到适配器,现在我需要做一些 UI根据结果​​从 activity 更改,如何将结果传递给 activity ..

activity--->适配器--->片段-->接口

这看起来确实是耦合设计。 我想看一些代码来了解你到底做了什么。 我猜您已经将 activity 引用传递给了用于显示片段的适配器。

从技术上讲,您的 activity 可以实现您的接口,片段可以使用 activity 的引用来调用接口的方法,但它看起来是一个非常糟糕的设计。

检查 https://github.com/greenrobot/EventBus 但即便如此,也不要过度使用。

最简单的解决方案:

fragment必须activity的引用。所以在 DialogFragment 里面你可以调用:

((YourActivityName)getActivity()).anyPublicMethodOfActivity(someData);

如果你输入一些代码,我可以告诉你 fragment 是如何得到 activity 的引用的。

您可以通过界面完成此操作。按照以下 4 个步骤

1 创建一个接口

  interface abc(){
   void callDialogFragment()
}
  1. 在适配器构造函数中初始化该接口对象

    abc mLisetner;

    mLisetner=(abc)mContext; // 调用特定监听器中的方法

    mLisetner.callDialogFragment()

  2. 在activity

  3. 上实现接口
  4. 定义actvity的覆盖方法并调用dialogFragment

    @覆盖 public callDialogFragment(){

    // 在这里调用你的对话框 }