mvp框架的简单使用

                mvp框架的简单使用

1.概述:mvp现在是最常用的一种开发框架,以下是一个仿登录的操作
2.思路:net包仿网络请求,
bean包user数据
model包定义接口是业务模型层
view包定义接口是只完成页面中的控件的直接操作
presenter拿到model对象和View对象进行操作
mainactivity操作视图
3.实现代码:
net包
public class NetUtils {
public static void getNetData(){
SystemClock.sleep(2000);
}
}
bean包登录的用户名和密码
public class UserInfo {
public String name;
public String pass;

public UserInfo(String pass, String name) {
    this.pass = pass;
    this.name = name;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPass() {
    return pass;
}

public void setPass(String pass) {
    this.pass = pass;
}

}
model包
业务模型层
public interface IUserLonginModel {
//登录方法
public void login(String name,String pass);
//保存密码方法
public void saveUserInfo(String name,String pass);
//得到用户信息并返回方法
public UserInfo getUserInfo();
}
在建一个类实现接口
public class UserLoginModel implements IUserLonginModel{
Context context;
SharedPreferences sp;
SharedPreferences.Editor editor;
public UserLoginModel(Context context) {
this.context = context;
sp=context.getSharedPreferences(“user”,Context.MODE_PRIVATE);
editor=sp.edit();
}

@Override
public void login(String name, String pass) {
    NetUtils.getNetData();
}

@Override
public void saveUserInfo(String name, String pass) {
    editor.putString("name",name);
    editor.putString("pass",pass);
    editor.commit();
}

@Override
public UserInfo getUserInfo() {
    String name=sp.getString("name","");
    String pass=sp.getString("pass","");
    UserInfo user=new UserInfo(name,pass);
    return user;
}

}
//view包只完成页面中的控件的直接操作
public interface IUserLoginView {
public void setTextName(String name);
public void setTextPass(String pass);
public String getTextName();
public String getTextPass();
}
//最后在mainactivity
package com.example.day1_mvp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.example.day1_mvp.presenter.LoginPresenter;
import com.example.day1_mvp.view.IUserLoginView;

public class MainActivity extends AppCompatActivity implements IUserLoginView {
EditText et_name,et_pass;
Button btn;
LoginPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}

private void initView() {
    et_name= (EditText) findViewById(R.id.et_name);
    et_pass= (EditText) findViewById(R.id.et_pass);
    presenter=new LoginPresenter(this,this);
    presenter.showUserInfo();
    btn= (Button) findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            presenter.login();
        }
    });
}

@Override
public void setTextName(String name) {
   et_name.setText(name);
}

@Override
public void setTextPass(String pass) {
    et_pass.setText(pass);
}

@Override
public String getTextName() {
    return et_name.getText().toString();
}

@Override
public String getTextPass() {
    return et_pass.getText().toString();
}

}
//布局

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值