简单的一个利用MVP做的登录

来源:互联网 发布:如何下载linux系统 编辑:程序博客网 时间:2024/05/17 18:01
首先是实体类
public class Lobean {   String code;    public Lobean(String code) {        this.code = code;    }    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }}
还有就是下面的View  model  presenter层的封装
public interface IModel {    void Login(String name, String pass, CallBack callBack);    interface CallBack{        void setData(String str);    }}

定义完接口是指要记得实现类
public class UserModel implements IModel{    String path="http://120.27.23.105/user/login";    @Override    public void Login(String name, String pass, final CallBack callBack) {        Map<String,String> map=new HashMap<>();        map.put("mobile",name);        map.put("password",pass);        OkHttp3Utils.getInstance().doPost(path, map, new GsonObjectCallback<Lobean>() {            @Override            public void onUi(Lobean lobean) {                String code = lobean.getCode();                callBack.setData(code);            }            @Override            public void onFailed(Call call, IOException e) {            }        });presenter就是来处理View层和model层的逻辑的
public class Loginpresenter {    String path="http://120.27.23.105/user/login";    IModel iModel;    IView iView;    Context context;    public Loginpresenter(Context context, IView iView) {        this.context = context;        this.iView = iView;        this.iModel = new UserModel();    }    public void login(){        final String name = iView.getName();        final String pass = iView.getPass();        iModel.Login(name, pass, new IModel.CallBack() {            @Override            public void setData(String str) {                if ("0".equals(str)){                    Toast.makeText(context,"登录成功",Toast.LENGTH_SHORT).show();                }else {                    Toast.makeText(context,"登录失败",Toast.LENGTH_SHORT).show();                }            }        });    }}

View层定义来是为了获取数据的
public interface IView{    void setName(String name);    void setPass(String pass);    String getName();    String getPass();}
下面是mainactivity里面执行的一些
public class MainActivity extends AppCompatActivity implements IView{    Button btn;    EditText et_name, et_pass;    Loginpresenter loginpresenter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn = (Button) findViewById(R.id.btn);        et_name = (EditText) findViewById(R.id.et_name);        et_pass = (EditText) findViewById(R.id.et_pass);        loginpresenter=new Loginpresenter(this,this);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                loginpresenter.login();            }        });    }    @Override    public void setName(String name) {        et_name.setText(name);    }    @Override    public void setPass(String pass) {        et_pass.setText(pass);    }    @Override    public String getName() {        return et_name.getText().toString();    }    @Override    public String getPass() {        return et_pass.getText().toString();    }}

原创粉丝点击