今天我们来说一下MVP这个模式,网上很多模式对新手都不太友好,说的太笼统。我今天介绍下简单的MVP入门方式,咱们都知道MVP是有model,view,presenter这三个模块,很多网上的代码都太乱了,今天我上个小案例方便大家学习。
登陆小案例:
首先咱们先写一个userBean
里面有userName和passWord两个属性。这个不用多说:
1553821957(1).png
接下来咱们要编写一下model的基类如下:
1553822087(1).png
然后编写下IView:
1553822194(1).png
注意看接下来的东西了
编写一个UserBizImpl继承UserBiz
1553823098(1).png
然后咱们要编写Presenter了 里面要对Model和View的操作
1553823098(1).png
方法不多说了,看下构造函数
接下来就是咱们的Activity
public class MainActivity extends AppCompatActivity implements IView {
private EditText username, password;
private Button login, clear;
private LoginPresenter loginPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
loginPresenter = new LoginPresenter(this);
username = findViewById(R.id.ed1);
password = findViewById(R.id.ed2);
login = findViewById(R.id.bt1);
clear = findViewById(R.id.bt2);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loginPresenter.login();
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loginPresenter.clear();
}
});
}
@Override
public String getUsername() {
return username.getText().toString();
}
@Override
public String getPassword() {
return password.getText().toString();
}
@Override
public void clearUsername() {
username.setText("");
}
@Override
public void clearPassword() {
password.setText("");
}
@Override
public void showMsg(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
}