Android-设计模式

代码架构 MVC代码架构 MVP
摘要由CSDN通过智能技术生成

代码架构 MVC

model:UserLoginModel.java

package com.gordon.androidmvcmvp.mvc.mode;

import android.text.TextUtils;
import com.google.gson.Gson;
import com.gordon.androidmvcmvp.mvc.bean.UserLoginBean;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;

public class UserLoginModel {

    public void login(String username, String password, final OnNetResponseListener listener) {
        //本地对输入情况做校验,都不为空的时候才请求服务器
        boolean validateOk = validateInput(username, password);
        if (validateOk) {
            String url = "http://www.loghare.com/Shop/customer/customer_userLogin.html";
            OkHttpUtils
                    .post()
                    .url(url)
                    .addParams("uname", username)
                    .addParams("pwd", password)
                    .build()
                    .execute(new StringCallback() {
                        @Override
                        public void onError(okhttp3.Call call, Exception e, int id) {
                            listener.onNetResponseError(e.getMessage());
                        }

                        @Override
                        public void onResponse(String response, int id) {

                            Gson gson = new Gson();
                            UserLoginBean userLoginBean = gson.fromJson(response, UserLoginBean.class);
                            listener.onNetResponseOk(userLoginBean);
                        }
                    });
        } else {
            listener.onNetResponseError("invisi");
        }
    }

    //校验输入是否为空
    private boolean validateInput(String username, String password) {
        if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password)) {
            return true;
        } else {
            return false;
        }
    }

    public interface OnNetResponseListener {
        void onNetResponseOk(UserLoginBean userLoginBean);
        void onNetResponseError(String msg);
    }
}

view-controller LoginActivityMvc.java

package com.gordon.androidmvcmvp.mvc;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.telecom.Call;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.google.gson.Gson;
import com.gordon.androidmvcmvp.LoginActivity;
import com.gordon.androidmvcmvp.R;
import com.gordon.androidmvcmvp.UserDetailActivity;
import com.gordon.androidmvcmvp.mvc.bean.UserLoginBean;
import com.gordon.androidmvcmvp.mvc.mode.UserLoginModel;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;

/**
 * Activity是万能的
 * 1、控件相关的代码   视图层相关的代码
 * 2、业务逻辑相关的代码
 * 3、数据相关的代码
 * <p>
 * <p>
 * M:Model 模型层,产生数据
 * V:View 视图层
 * C:Controller 逻辑控制层
 */
public class LoginActivityMvc extends AppCompatActivity implements View.OnClickListener {

    private EditText etUsername;
    private EditText etPassword;
    private Button btnLogin;
    private ProgressBar progressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        etUsername = (EditText) findViewById(R.id.etUsername);
        etPassword = (EditText) findViewById(R.id.etPassword);
        btnLogin = (Button) findViewById(R.id.btnLogin);
        progressBar = (ProgressBar) findViewById(R.id.progressBar);
        btnLogin.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id) {
            case R.id.btnLogin:
                String username = etUsername.getText().toString();
                String password = etPassword.getText().toString();
                login(username, password);
                break;
        }
    }

    private void login(String username, String password) {
        progressBar.setVisibility(View.VISIBLE);
        UserLoginModel userLoginModel = new UserLoginModel();
        userLoginModel.login(username, password, new UserLoginModel.OnNetResponseListener() {
            @Override
            public void onNetResponseOk(UserLoginBean userLoginBean) {
                //ui显示
                progressBar.setVisibility(View.GONE);
                if (userLoginBean.getStatus() == 200) {
                    //登录成功,跳转界面
                    Toast.makeText(LoginActivityMvc.this, "欢迎回来:" + userLoginBean.getUser().getUsername(), Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent();
                    intent.putExtra("username", user
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值