使用 Dagger 2 将上下文或活动传递给适配器

2023-12-31

我在没有上下文的情况下使用 Dagger 2 注入适配器并且它正在工作,但是当我传递上下文参数时我无法执行此操作。错误是这样来的

error: android.content.Context cannot be provided without an @Provides-annotated method.

匕首组件

@PerActivity
@Component(dependencies = ApplicationComponent.class, modules = MainFragmentModule.class)
public interface MainFragmentComponent {

    void inject(MainFragment mainFragment);

    @ActivityContext
    Context provideContext();
}

片段模块

@Module
public class MainFragmentModule {

    private MainFragmentContract.View mView;
    private Activity mActivity;
    Context mContext;

    MainFragmentModule(MainFragmentContract.View view, Context context) {
        mView = view;
        mContext = context;
    }

    @Provides
    MainFragmentContract.View providesView() {
        return mView;
    }

    @Provides
    @ActivityContext
    Context provideContext() {
        return mContext;
    }


}

Adapter

  @Inject
    public ConversationAdapter(MainFragmentPresenter mainPresenter, Context context) {
        mMainFragmentPresenter = mainPresenter;
        mContext =context;
    }

您已经告诉 dagger,您正在提供特定的上下文:

@ActivityContext
Context provideContext();

然后你要求 dagger 向你的适配器注入另一种类型的上下文 - 一个,它没有用注释@ActivityContext.

相反,您应该明确定义您愿意提供该类型的上下文:


    @Inject
    public ConversationAdapter(..., @ActivityContext Context context) {
        ...
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Dagger 2 将上下文或活动传递给适配器 的相关文章

  • Android 的 Firestore 超时

    我目前正在构建一个应用程序 将用户的博客文章保存在Firestore服务器 一切正常 但我发现该帖子在不稳定的互联网连接下无法上传 我尝试设置一个超时到Firestore实例 但 Firestore 库似乎没有超时选项 问题是 由于没有超时
  • 如何立即开始执行 Kotlin 协程

    我想立即启动一个协程 我有一段代码 class SampleActivity AppCompatActivity CoroutineScope private var job Job Job override val coroutineCo
  • 运行低于 Lollipop 的设备上的 CameraManager

    我遇到一个问题 我同时使用 Camera 低于 Lollipop 设备 和 CameraManager 类 Lollipop 及以上设备 运行低于 Lollipop 的设备会崩溃 我相信这是因为 import android hardwar
  • 如何获取firebase数据库中所有孩子的数据?

    我有这个 firebase 数据库 我需要获取用户的所有电话号码 我应该使用哪个侦听器来获取所有孩子 每个用户都作为一个对象添加 其中用户 ID 作为该对象的名称 我需要在不知道用户 ID 的情况下检索该对象 我搜索了文档 它与DataSn
  • Android:图形布局不起作用 - 不显示任何内容

    我的情况是 我曾经制作过一个android项目 2 2版本 但很快需要格式化我的电脑 格式化后 我再次下载了 eclipse 但是当我导入项目时 我无法使用 xml 的 图形布局 菜单 它没有向我显示如下图所示的任何内容 http img5
  • 如何使用 JavaScript 提高音频加载速度?

    我已经创建了播放代码 mp3使用 JavaScript 文件 但该文件在 Android 上播放需要很长时间 我想在点击文本图像后快速播放声音 如何提高 Android 的加载速度 我的 JavaScript 代码 if window au
  • android 无法解析方法 setcontentview

    今天在android studio 中遇到了一个错误 我正在尝试在应用程序中创建一个关于我们的屏幕 布局 xml 文件已创建 任何帮助表示赞赏 谢谢 错误 无法解析方法 setcontentview int package example
  • Android studio总是乱码

    I have change the encode to UTF 8 so I got this problem who can help me I reinstalled it twice but android studio1 4 Alw
  • 我们什么时候需要在 Angular2 的服务中使用 @Injectable ?

    All 我对 Angular2 还很陌生 当我到达依赖注入部分时 Injectable 符号让我有点困惑 只是想确保我对 Injectable 的理解是正确的 Injectable 表示它后面的类可以作为服务注入 Injectable 表示
  • 使用actionBar推送视图的正确方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是一名新的 Android 开发人员 所以我更喜欢询问正确的方法来解决我的问题 我有一个 FragmentActivity 和多个片段
  • android.provider.Settings.ACTION_BLUETOOTH_SETTINGS 在三星上崩溃

    任何人都知道为什么 Intent pairIntent new Intent android provider Settings ACTION BLUETOOTH SETTINGS startActivityForResult pairIn
  • 是否可以为 DialogFragment 制作动画?

    我尝试了有关片段动画的各种示例 但没有任何反应 所以 DialogFragment 不是 正确的 片段吗 或者我在这里遗漏了什么 FragmentTransaction ft getFragmentManager beginTransact
  • Gradle 构建失败 - 无法解压

    我正在使用 android studio 做一个项目 最近它显示了一个错误your SDK is missing or out of date所以 我再次下载了SDK 现在它显示一个错误 Gradle Build failed 错误如下 E
  • 在Android上使用XStream时如何注释order字段?

    我需要从 Android 上的 java 对象生成 XML XML 节点必须位于 确定的顺序 这是我得到的 这些字段按字母顺序排列
  • 在 Android 中将图像从可绘制图像转换为字节数组

    由于我要将图像发送到 Parse com 因此我必须将其转换为字节数组 我的第一种方法是从图库中选择图像并将其转换为字节数组 如下所示 Override protected void onActivityResult int request
  • Android Studio安装JDK错误

    In Android Studio I am facing bellow error 当我按下时会显示此弹出窗口Alt Enter对于缺少的类 符号 当我点击 setup SDK 时 它显示两个选项 1 8 Java版本 1 8 0 60
  • Android BottomNavigationView 与自定义视图作为图标[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试 Android 支持库中的新 BottomNavigationView 对于其中一个菜单项 我希望有一个自定义视图 以便我
  • 如何动态实例化服务?

    我有一个Utils服务很重 我想在特定的用户操作中使用其中定义的一些函数 由于这项服务很重 我想延迟实例化它 在用户操作时 我该如何实现这一目标 Service module service Utils function dep1 dep2
  • 在 IntelliJ IDEA 11 中编译期间未检测到模块依赖性

    我正在开发一个 Android 应用程序 我正在尝试包含图形视图 https github com jjoe64 GraphView绘制一些图表 需要将其作为模块依赖项包含在内 执行此操作后 IntelliJ IDE 会正确检测到包 我可以
  • 如何在android中使用Room Persistence ORM工具实现created_at和updated_at列

    我该如何实施created at and updated at在Android中使用Room Persistence ORM工具的列 可以在创建或更新表中的行时自动更新时间戳 我研究了很多网站 但仍然没有找到任何可以处理的结果middlew

随机推荐