Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А ваше решение где-нибудь опубликовано?
protected void onFirstViewAttach() {
super.onFirstViewAttach();
getViewState().start();
}@Override
public void start() {
presenter.start(getIntent().getExtras().getInt(Constants.VALUE));
}start в интерфейсе View аннотацию: @StateStrategyType(SkipStrategy.class)onCreate выполните ваш код presenter.setStartValue(getIntent().getExtras().getInt(Constants.VALUE));setStartValue сохарните пришедшее значение где-нибудь в presenteronFirstViewAttach берёте это значение и работаете с нимonFirstViewAttach будет вызван только при первом привязывании view. А после поворота девайса, он уже не будет вызван. Но похоже вы это и так поняли =)public interface JokePresenter {
void postJoke(String jokeText);
void getRundomJoke();
void setJoke(String jokeText);
}
@InjectViewState
public class JokePresenterImpl extends MvpPresenter<JokeView> implements JokePresenter{
...
}
public class JokeActivity extends MvpAppCompatActivity implements JokeView {
@InjectPresenter
JokePresenterImpl myJokePresenter;
...
}
@InjectPresenter
JokePresenter myJokePresenter;
Error:(22, 19) error: You can not use @InjectPresenter in classes that are not View, which is typified target Presenter
А как вам поможет интерфейс презентера в тестировании? Протестировать вьюху? Но смысл MVP в том, чтобы вынести всю логику в презентер. Подставлять другие презентеры во вью тоже сомнительная идея. Другой презентер — другая вью — другой интерфейс у вью.
@InjectViewState, а просто в момент аттача передавать биндинг-объект во вью, и всё. Для этого достаточно заоверрайдить метод attachView, и в нём передавать во вью свой объект.вы называете "костылем" особенность реализации. Это как назвать "костылем" аккумуляторы у Теслы, исправляющие баг с невозможностью ездить на бензине.
Moxy — реализация MVP под Android с щепоткой магии