Moxy: Как передать параметры Presenter?

Вот моя реализация MVP:

public class OfferDetailsPdfActivity extends AppCompatActivity implements OnPageChangeListener, OfferDetailsPdfMvp.View {
  private PdfPresenterImpl presenter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        int offerId = 0;
        if (extras != null) {
            offerId = extras.getInt(Offer.ID);
        }
        presenter = PdfPresenterImpl.getInstance(this, offerId);
}

Теперь я хочу использовать Moxy.

Так что здесь изменения на активность

public class OfferDetailsPdfActivity extends MvpAppCompatActivity implements OnPageChangeListener, OfferDetailsPdfMvp.View {
    @InjectPresenter
    PdfPresenterImpl presenter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        int offerId = 0;
        if (extras != null) {
            offerId = extras.getInt(Offer.ID);
    }
        // how pass parameter to presenter?
       // presenter = PdfPresenterImpl.getInstance(this, offerId);
}

Но теперь, как я могу передать параметры (context, offerId) к ведущему?

2 ответа

Мокси имеет специальную аннотацию @ProvidePreseter для создания Presenter с помощью пользовательского конструктора. Есть больше информации и пример. Также я настоятельно рекомендую не передавать контекст докладчику. Потому что тогда контекст может просочиться.

@ProvidePresenter должен сделать свое дело. Посмотрите пример: https://github.com/Arello-Mobile/Moxy/wiki/Custom-Presenter-constuructor

Другие вопросы по тегам