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