我正在使用使用Firebase服务和Firebase身份验证的MVP模式开发Android应用程序。
在身份验证模块中,我有三个片段(视图)-a)屏幕介绍片段,b)登录片段和c)注册片段。每个片段都有自己的演示者。
当用户单击简介屏幕中的“登录”按钮时,如何调用“登录片段”并实例化其演示者和模型?
根据Android体系结构示例-https://github.com/googlesamples/android-architecture,片段(视图)和演示者在活动中被实例化,但是示例未显示如何在一个身份验证活动中处理多个片段。
我在堆栈溢出时发现了类似的问题-(Implementing MVP on a single activity with two (or multiple) fragments),但找不到令人满意的答案。
我是Android MVP的新手,谢谢,谢谢。
答案 0 :(得分:0)
在您的情况下,您可以将身份验证模块破坏为:
查看界面:
interface View {
//Show Introduction screen
void onIntro();
//Show User sign in screen
void onUserSignIn();
//Show User sign up screen
void onUserSignUp();
//User logged in i.e. either signed in or signed up
void onLogin();
}
模型界面:
interface Model {
//on Login / Signup successful
void onLogin();
}
演示者界面:
interface Presenter {
// Perform sign in task
void performSignIn();
// Perform sign up task
void performSignUp();
}
活动将实现此视图并实现以下方法:
class AuthenticationActivity extends Activity implement View {
Presenter presenter;
public void onCreate() {
// Initialize Presenter as it has all business logic
presenter = new Presenter(view, model);
}
public void onIntro(){
// initialize a new intro fragment
// and add / replace it in activity
}
public void onUserSignIn(){
// initialize a new sign in fragment
// and add / replace it in activity
}
public void onUserSignUp() {
// initialize a new user sign up fragment
// and add / replace it in activity
}
void onLogin() {
// do what you want to do. User has logged in
}
}
这将为您提供基本的想法,例如如何在Android中设计Login MVP以及流程如何工作。