【问题标题】:how do I inject MainActivity context using dagger2 in java?如何在 java 中使用 dagger2 注入 MainActivity 上下文?
【发布时间】:2022-01-10 11:52:39
【问题描述】:

我正在尝试将 MainActivity 的上下文注入到我拥有的类中。我查看了this,但它对我不起作用,我收到以下错误:

    /home/muhammadmehdi/ALL_PROJECTS/memex/memex-app/app/src/main/java/com/memex/MainActivity.java:30: error: cannot find symbol
import com.memex.components.DaggerMainActivityComponent;
                           ^
  symbol:   class DaggerMainActivityComponent
  location: package com.memex.component

这是我在 MainActivity.java 文件的 onCreate 方法中写的代码:

MainActivityComponent mainActivityComponent = DaggerMainActivityComponent.builder()
                .mainActivityModule(new MainActivityModule(MainActivity.this))
                .build();

【问题讨论】:

    标签: java android dagger-2 android-context


    【解决方案1】:

    终于想通了:

    // modules.java
    @Module
    public class ContextModules {
    
        private final Context context;
    
        public ContextModules(Context context) {
            this.context = context;
        }
    
        @Provides
        ContextProviderClass contextProvider() {
            return new ContextProviderClass(context);
        }
    }
    
    //components.java interface
    @Component(modules = ContextModules.class)
    public interface Components {
         // put getter for class that needs context
    }
    
    // MainActivity.java where you want the object of class
    Components components = DaggerComponents.builder()
                    .modules(new ModContextModulesules(this))
                    .build();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多