
我有一个使用MVP架构构建的Android项目.我不太确定的一件事是,例如,当我想在单击按钮后导航到另一个活动时,应该放置
startActivity(intent) 在视图组件内部还是在presenter组件内部?
解决方法:
您必须在视图组件中执行此 *** 作,所有ui相关的活动都必须在视图中执行,例如打开新活动或替换片段并请求权限.
让我进一步解释一下,假设我们的活动中只有一个按钮,因此我们将在演示者中编写其逻辑,即调用演示者方法buttonClick(),如果要在逻辑之后打开另一个活动,则只需调用getMvp.openMainActivity();.其中openMainActivity()将成为视图的一部分.
这是基于MVP架构的基本登录活动的示例方法.
我的登录演示者MVP界面有
voID onServerLoginClick(String email, String password);我的登录视图MVP界面有
voID openMainActivity();我的登录演示者实现是
@OverrIDe public voID onServerLoginClick(String email, String password) { //valIDate email and password if (email == null || email.isEmpty()) { getMvpVIEw().onError(R.string.empty_email); return; } if (!CommonUtils.isEmailValID(email)) { getMvpVIEw().onError(R.string.invalID_email); return; } if (password == null || password.isEmpty()) { getMvpVIEw().onError(R.string.empty_password); return; } getMvpVIEw().showLoading(); User u = getDataManager().matchUser(new User(2l,"",email,password,"","")); if (u==null){ getMvpVIEw().onError("No user found"); getMvpVIEw().hIDeLoading(); }else { getDataManager().updateUserInfo( "", u.getID(), DataManager.LoggedInMode.LOGGED_IN_MODE_SERVER, u.getname(), u.getEmail(), "", password); getMvpVIEw().hIDeLoading(); getMvpVIEw().openMainActivity(); } }我的登录视图类的实现是
@OverrIDe public voID openMainActivity() { Intent intent = MainActivity.getStartIntent(LoginActivity.this); startActivity(intent); finish(); }希望这可以帮助您理解概念.
总结以上是内存溢出为你收集整理的我应该在哪里进行MVP架构中的活动导航?全部内容,希望文章能够帮你解决我应该在哪里进行MVP架构中的活动导航?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)