簡體   English   中英

如何在 java 中使用 dagger2 注入 MainActivity 上下文?

[英]how do I inject MainActivity context using dagger2 in java?

我正在嘗試將 MainActivity 的上下文注入到我擁有的 class 中。 我看了這個,但它對我不起作用,我收到以下錯誤:

    /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();

終於想通了:

// 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM