Как создать одноэлементный класс с фиктивными данными с помощью Dragger 2? - PullRequest
0 голосов
/ 24 января 2019

Привет, я хочу знать, если возможно, создать синглтон с макетом и с Dragger

Я знаю стандартный код для этого без Dragger 2

public class Singleton {
    private Singleton() { }

    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }

    public String getFoo() {
        return "bar";
    }
}

Здесь я знаю, где поставитьсписок массивов с данными для макета, но как это сделать с помощью кинжала, где находится функция установки или аналогичная для помещения ArrayList с данными, и как можно вызвать.

Спасибо

1 Ответ

0 голосов
/ 24 января 2019

Вам просто нужно добавить метод в один из ваших модулей и аннотировать его аннотацией @Singleton. Например:

@Module
public class MyModule {
    @Provides
    @Singleton
    MockData provideMockData() {
       return new MockData(Arrays.asList("A", "B", "C"));
    }

    @Provides
    OtherClass provideOtherClass(MockData mockData) {
       return new OtherClass(mockData);
    }
}

public class MockData {

    private List<String> list;

    public MockData(List<String> list){
        this.list = list;
    }

    public List<String> getList() {
        return list;
    }
}

Проверьте раздел "Одиночные привязки и привязки по областям" в https://google.github.io/dagger/users-guide.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...