MVP

来源:互联网 发布:火凤凰云计算拖欠工资 编辑:程序博客网 时间:2024/06/05 22:38

//HttpUtils导入OK包

public class HttpUtils {    private final OkHttpClient okHttpClient;    private static HttpUtils httpUtils;    private HttpUtils(){        okHttpClient = new OkHttpClient.Builder()                .addInterceptor(new LoggingInterceptor())                .connectTimeout(5, TimeUnit.SECONDS)                .readTimeout(5, TimeUnit.SECONDS)                .writeTimeout(5, TimeUnit.SECONDS)                .build();}    public static HttpUtils getHttpUtil(){        if(httpUtils==null){            synchronized (HttpUtils.class){                if(httpUtils==null){                    httpUtils = new HttpUtils();                }            }        }        return httpUtils;    }    public  void doPost(String url, Map<String,String> params, Callback callback){        FormBody.Builder builder=new FormBody.Builder();        for(Map.Entry<String,String> entry:params.entrySet()){            builder.add(entry.getKey(),entry.getValue());        }        FormBody build = builder.build();        Request build1 = new Request.Builder().url(url).post(build).build();        okHttpClient.newCall(build1).enqueue(callback);    }}
public interface OnNetListener {    public void onSuccess(String str);    public void onFailure(Exception e);}

//model层ILoginModel

public interface ILoginModel {
    public void login(String url, OnNetListener onNetListener);
}

//model层LoginModel

public class LoginModel implements ILoginModel{
    @Override
    public void login(String url, final OnNetListener onNetListener) {
        HttpUtils.getHttpUtils().doGet(url, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                //失败
                onNetListener.onFailure(e);
            }


            @Override
            public void onResponse(Call call, Response response) throws IOException {
            //请求成功
                onNetListener.onSuccess(response.body().string());
            }
        });
    }
}

//model层IRegister 

public interface IRegister {
    public void register(String url, OnNetListener onNetListener);
}

//model层Register 

public class Register implements IRegister{
    @Override
    public void register(String url, final OnNetListener onNetListener) {
        HttpUtils.getHttpUtils().doGet(url, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                onNetListener.onFailure(e);
            }


            @Override
            public void onResponse(Call call, Response response) throws IOException {
            onNetListener.onSuccess(response.body().string());
            }
        });
    }
}

//presenter层LoginPresenter 

public class LoginPresenter {


    private final LoginModel loginModel;
private IMainActivty iMainActivty;
    public LoginPresenter(IMainActivty iMainActivty){
        //创建Model层对象
        loginModel = new LoginModel();
        this.iMainActivty=iMainActivty;
    }
    public void login(){
        String urlStr="http://120.27.23.105/user/login?mobile=%s&password=%s";
        String phone=iMainActivty.getPhone();
        String pwd=iMainActivty.getPwd();
        String url=String.format(urlStr,phone,pwd);
        loginModel.login(url, new OnNetListener() {
            @Override
            public void onSuccess(String str) {
                iMainActivty.show(str);
                iMainActivty.toSecond();
            }


            @Override
            public void onFailure(Exception e) {


            }
        });
    }
}

//RegisterPresenter 

public class RegisterPresenter {
    private IMainActivty iMainActivty;
    private IRegister iRegister;
    public RegisterPresenter(IMainActivty iMainActivty){
    iRegister=new Register();
        this.iMainActivty=iMainActivty;
    }
    public void register(){
        String urlStr="http://120.27.23.105/user/reg?mobile=%s&password=%s";
        String phone=iMainActivty.getPhone();
        String pwd=iMainActivty.getPwd();
        String url=String.format(urlStr,phone,pwd);
        iRegister.register(url, new OnNetListener() {
            @Override
            public void onSuccess(String str) {
                iMainActivty.show(str);
            }


            @Override
            public void onFailure(Exception e) {


            }
        });
    }
}

//view

public interface IMainActivty {
    //获取手机号
    public String getPhone();


    //获取密码
    public String getPwd();


    //显示登录成功后的数据
    public void show(String str);


    //跳转
    public void  toSecond();
}

//mainAcativty

public class MainActivity extends AppCompatActivity implements View.OnClickListener ,IMainActivty{


    /**
     * 请输入账号
     */
    private EditText mEtAccount;
    /**
     * 请输入密码
     */
    private EditText mEtPwd;
    /**
     * 登录
     */
    private Button mBtLogin;
    /**
     * 注册
     */
    private Button mBtRegister;
    private LinearLayout mActivityMain;
    private LoginPresenter loginPresenter1;
    private RegisterPresenter registerPresenter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loginPresenter1 = new LoginPresenter(this);
        registerPresenter = new RegisterPresenter(this);
        MainPresenter mainPresenter = new MainPresenter(this);


        initView();


    }


    private void initView() {
        mEtAccount = (EditText) findViewById(R.id.et_account);
        mEtPwd = (EditText) findViewById(R.id.et_pwd);
        mBtLogin = (Button) findViewById(R.id.bt_login);
        mBtLogin.setOnClickListener(this);
        mBtRegister = (Button) findViewById(R.id.bt_register);
        mBtRegister.setOnClickListener(this);
        mActivityMain = (LinearLayout) findViewById(R.id.activity_main);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.bt_login:
                loginPresenter1.login();
                break;
            case R.id.bt_register:
                registerPresenter.register();
                break;
        }
    }




    @Override
    public String getPhone() {
        return mEtAccount.getText().toString().trim();
    }


    @Override
    public String getPwd() {
        return mEtPwd.getText().toString().trim();
    }


    @Override
    public void show(final String str) {
runOnUiThread(new Runnable() {
    @Override
    public void run() {
        Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
    }
});
    }


    @Override
    public void toSecond() {
    /*    //登录成功后跳转
        Intent intent = new Intent(MainActivity.this, Success.class);
        startActivity(intent);*/
    }
}
原创粉丝点击