MVP登录注册

来源:互联网 发布:efd.lab软件下载 编辑:程序博客网 时间:2024/05/22 12:24

这是工程结构

Activity包

**************************************************************************************************************************************

public class MainActivity extends AppCompatActivity implements View.OnClickListener,LogiView {    private TextView mTv;    private EditText mMobileEdit;    private EditText mPasswordEdit;    private Button mLoginBtn;    private Button mRegBtn;    LogMyPresenter presenter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        presenter=new LogMyPresenter(this,this);    }    private void initView() {        mTv = (TextView) findViewById(R.id.tv);        mMobileEdit = (EditText) findViewById(R.id.edit_mobile);        mPasswordEdit = (EditText) findViewById(R.id.edit_password);        mLoginBtn = (Button) findViewById(R.id.btn_login);        mLoginBtn.setOnClickListener(this);        mRegBtn = (Button) findViewById(R.id.btn_reg);        mRegBtn.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_login:                presenter.loading(mMobileEdit.getText().toString(),mPasswordEdit.getText().toString());                break;            case R.id.btn_reg:                Intent intent=new Intent(MainActivity.this,ZhuCeActivity.class);                startActivity(intent);                break;            default:                break;        }    }    @Override    public void ShowData(LogBean lbean) {        Toast.makeText(MainActivity.this,""+lbean.getMsg(),Toast.LENGTH_SHORT).show();    }}
********************************************************************************************************************************
public class ZhuCeActivity extends AppCompatActivity implements View.OnClickListener,RegiView {    private TextView mTv;    private EditText mMobileEdit;    private EditText mPasswordEdit;    private Button mRegBtn;    RegMyPresenter presenter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_zhu_ce);        initView();        presenter=new RegMyPresenter(this,this);    }    private void initView() {        mTv = (TextView) findViewById(R.id.tv);        mMobileEdit = (EditText) findViewById(R.id.edit_mobile);        mPasswordEdit = (EditText) findViewById(R.id.edit_password);        mRegBtn = (Button) findViewById(R.id.btn_reg);        mRegBtn.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_reg:            presenter.Loading(mMobileEdit.getText().toString(),mPasswordEdit.getText().toString());                break;            default:                break;        }    }    @Override    public void ShowData(RegBean rbean) {        Toast.makeText(ZhuCeActivity.this,""+rbean.getMsg(),Toast.LENGTH_SHORT).show();    }}
Model
public interface LogiModel {    public void initData(String mobile, String password, Callback callback);}
*********************************************************************************************************
public class LogMyModel implements LogiModel {    @Override    public void initData(String mobile, String password, Callback callback) {        OkHttpUtils.getInstance().doGet("http://120.27.23.105/user/login?mobile="+mobile+"&password="+password+"",callback);    }}

**********************************************************************************************************
public interface RegModel {    public void initData(String mobile, String password, Callback callback);}
**********************************************************************************************************
public class RegMyModel implements RegModel {    @Override    public void initData(String mobile, String password, Callback callback) {        OkHttpUtils.getInstance().doGet("http://120.27.23.105/user/reg?mobile="+mobile+"&password="+password+"",callback);    }}

Presenter


public class LogMyPresenter {    Context context;    LogiView iview;    LogMyModel model;    LogBean lbean;    public  LogMyPresenter(Context context,LogiView iview){            this.context=context;            this.iview=iview;            model=new LogMyModel();     }     public void loading(String mobile,String password){         model.initData(mobile, password, new OnUiCallback() {             @Override             public void onFailed(Call call, IOException e) {                 //失败             }             @Override             public void onSuccess(String result) {                //成功                 Gson gson = new Gson();                 lbean =gson.fromJson(result,LogBean.class);                 iview.ShowData(lbean);             }         });     }}

**********************************************************************************************************************

public class RegMyPresenter {    Context context;    RegiView rview;    RegMyModel model;    public RegMyPresenter(Context context,RegiView rview){        this.context=context;        this.rview=rview;        model=new RegMyModel();    }    public void Loading(String mobile,String password){        model.initData(mobile, password, new OnUiCallback() {            @Override            public void onFailed(Call call, IOException e) {            }            @Override            public void onSuccess(String result) {                Gson gson=new Gson();                RegBean rbean=gson.fromJson(result,RegBean.class);                rview.ShowData(rbean);            }        });    }}

View

public interface LogiView {    public void ShowData(LogBean lbean);}

********************************************************************************************

public interface RegiView {    public void ShowData(RegBean rbean);}

util包和上一篇博客一样,这就不传了。

原创粉丝点击