volley实现登录注册

契约类:

public interface LoginContract {
//Iview
  interface  IloginView{
      void  getPreDate(String data);

}

//Imodel
  interface  IloginModel{
      void  getRequester(Context context, String url, String username, String pswd, ModelCallBack modelCallBack);
      interface ModelCallBack{
          void onSeccess(String data);
          void onFail();

      }

}
//Ipresenter
 interface   IloginPresenter{
      void  attch(LoginActivity loginActivity);
      void  detch();
      void  login(Context context,String url,String username,String pswd);

}
}

model层:

public class LoginModel implements LoginContract.IloginModel {

private Handler handler=new Handler();
public static final String TAG="LoginModel";
private HashMap stringHashMap;
private boolean wifiConnected;
@Override
public void getRequester(final Context context, String url, String username, String pswd, final ModelCallBack modelCallBack) {
    //掉去网络请求
    stringHashMap = new HashMap<>();
    stringHashMap.put("phone",username);
    stringHashMap.put("pwd",pswd);
    wifiConnected = HttpVolley.getInstance().isNetworkConnected(context);
if(wifiConnected){
 HttpVolley.getInstance().VolleyHttpPost(url,stringHashMap, new HttpVolley.VolleyCallBack() {
     @Override
     public void onSuccess(String data) {
         modelCallBack.onSeccess(data);
     }

     @Override
     public void onFail(VolleyError error) {
         modelCallBack.onFail();
     }
 });
}else {
 //子线程
 new Thread(new Runnable() {
     @Override
     public void run() {
          //handler 切换主线程
         handler.post(new Runnable() {
             @Override
             public void run() {
                 Toast.makeText(context,"网络链接失败",Toast.LENGTH_LONG).show();
             }
         });
     }
 }).start();

 Log.d(TAG, "getRequester: "+"网络链接失败");
}
}
}

presenter层:

public class LoginPreSenter implements LoginContract.IloginPresenter {

private LoginModel loginModel;
private LoginContract.IloginView iloginView;
@Override
public void attch(LoginActivity loginActivity) {
    this.iloginView=loginActivity;
    loginModel = new LoginModel();

}

@Override
public void detch() {
    if(iloginView!=null){
        iloginView=null;
    }
    if(loginModel!=null){
        loginModel=null;
    }
    System.gc();

}

@Override
public void login(Context context,String url, String username, String pswd) {
    loginModel.getRequester(context,url, username, pswd, new LoginContract.IloginModel.ModelCallBack() {
        @Override
        public void onSeccess(String data) {
            iloginView.getPreDate(data);
        }

        @Override
        public void onFail() {

        }
    });


}

}
view层–>activity:
public class LoginActivity extends AppCompatActivity implements LoginContract.IloginView {

private EditText nameEt,pswdEt;
private Button button;
private CheckBox checkBox;
private String musername;
private String mpswd;
private LoginPreSenter loginPreSenter;
public static final String BaseLoginUrl="http://172.17.8.100/small/user/v1/login";
private Gson gson;
private LoginBean loginBean;
private Intent intent;
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor edit;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    loginPreSenter = new LoginPreSenter();
    loginPreSenter.attch(this);
    sharedPreferences = getSharedPreferences("mvplogin",MODE_PRIVATE);
    edit = sharedPreferences.edit();
    init();
}

private void init() {

    pswdEt = findViewById(R.id.login_pswd_et);
    nameEt = findViewById(R.id.login_name_et);
    button = findViewById(R.id.login_bt);
    checkBox = findViewById(R.id.login_cb);


    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            musername = nameEt.getText().toString();
            mpswd = pswdEt.getText().toString();
            if (!musername.isEmpty()&&!mpswd.isEmpty()){
                loginPreSenter.login(LoginActivity.this,BaseLoginUrl,musername,mpswd);
            }
        }
    });

}

@Override
public void getPreDate(String data) {
    gson = new Gson();
    if(data!=null){
        loginBean = gson.fromJson(data, LoginBean.class);
        Toast.makeText(this,loginBean.getMessage(),Toast.LENGTH_LONG).show();
        if(loginBean.getStatus().equals("0000")){
            edit.putString("mpswd",mpswd);
            edit.commit();
            intent = new Intent(LoginActivity.this, MainActivity.class);
            startActivity(intent);
            finish();
        }
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    loginPreSenter.detch();
}
}

你可能感兴趣的:(volley实现登录注册)