大家可以参考下这篇文章:
最适合android的MVP模式
上面的文章该有的全有了, 只是他使用的是google官方推荐的写法。
下面贴一下通常的写法:
(1)目录结构
image.png
(2)view
public interface ILoginView {
void login(String msg);
}
(3)model
public interface ILoginModel {
void login(ILoginView iLoginView);
}
public class LoginIml implements ILoginModel {
@Override
public void login(ILoginView iLoginView) {
iLoginView.login("登录成功");
}
}
(4)presenter
public class LoginPresenter {
private ILoginView iLoginView;
private LoginIml loginIml;
public LoginPresenter(ILoginView iLoginView){
this.iLoginView = iLoginView;
loginIml = new LoginIml();
}
/**
* 登录接口
*/
public void login(){
iLoginView.login("登录成功!");
}
}
(5)使用
public class LoginActivity extends BaseActivity implements ILoginView{
private EditText account;
private EditText password;
private Button bt_ok;
private LoginPresenter presenter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
bt_ok = findViewById(R.id.bt_ok);
account = findViewById(R.id.account);
password = findViewById(R.id.password);
presenter = new LoginPresenter(this);
bt_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
presenter.login();
}
});
}
@Override
public void login(String msg) {
//登录
Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_SHORT).show();
}
}