HttpConfig
//登陆 public static String login_url = "https://www.zhaoapi.cn/user/login"; //注册 public static String reg_url = "https://www.zhaoapi.cn/user/reg";
model 包
ILoginModelListener
package com.daydayup.day14_gouwuche.model; /** * Created by AIlt on 2018/5/3. */ public interface ILoginModelListener { //获取数据成功 void showJsonSuccess(String json); //获取数据失败 void showJsonError(String error);
}
ILoginRegModel
package com.daydayup.day14_gouwuche.model; import java.util.Map; /** * Created by AIlt on 2018/5/3. */ public interface ILoginRegModel { //登陆 void formLogin(String url, Map<String,String> parmas,ILoginModelListener iLoginModelListener); }
LoginRegModelImpl
package com.daydayup.day14_gouwuche.model; import com.daydayup.day14_gouwuche.http.HttpUtils; import com.daydayup.day14_gouwuche.http.OkLoadListener; import java.util.Map; /** * Created by AIlt on 2018/5/3. */ public class LoginRegModelImpl implements ILoginRegModel { //登陆 @Override public void formLogin(String url, Map<String, String> params, final ILoginModelListener iLoginModelListener) { //请求网络 HttpUtils httpUtils = HttpUtils.getHttpUtils(); httpUtils.okPost(url,params); httpUtils.setOkLoadListener(new OkLoadListener() { @Override public void okLoadSuccess(String json) { iLoginModelListener.showJsonSuccess(json); } @Override public void okLoadError(String error) { iLoginModelListener.showJsonError(error); } }); } }
presenter 包
ILoginPrsenter
package com.daydayup.day14_gouwuche.presenter; import com.daydayup.day14_gouwuche.model.ILoginRegModel; import com.daydayup.day14_gouwuche.view.ILoginView; /** * Created by AIlt on 2018/5/3. */ public interface ILoginPrsenter { //登陆 void getLoginToView(ILoginRegModel iLoginRegModel, ILoginView iLoginView); }
LoginPresenterImpl
package com.daydayup.day14_gouwuche.presenter; import com.daydayup.day14_gouwuche.http.HttpConfig; import com.daydayup.day14_gouwuche.model.ILoginModelListener; import com.daydayup.day14_gouwuche.model.ILoginRegModel; import com.daydayup.day14_gouwuche.model.LoginBean; import com.daydayup.day14_gouwuche.view.ILoginView; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; /** * Created by AIlt on 2018/5/3. */ public class LoginPresenterImpl implements ILoginPrsenter { //登陆 @Override public void getLoginToView(ILoginRegModel iLoginRegModel, final ILoginView iLoginView) { Map<String, String> params = new HashMap<>(); params.put("mobile", iLoginView.getMobile()); params.put("password", iLoginView.getPassword()); iLoginRegModel.formLogin(HttpConfig.login_url, params, new ILoginModelListener() { @Override public void showJsonSuccess(String json) { Gson gson = new Gson(); LoginBean loginBean = gson.fromJson(json, LoginBean.class); String code = loginBean.getCode(); if (code.equals("0")) {//当code为0时说明登陆成功 iLoginView.showLoginSuccess(json); }else {//为登陆失败 iLoginView.showLoginError(loginBean.getMsg()); } } @Override public void showJsonError(String error) { //登陆失败 iLoginView.showLoginError(error); } }); } }
view 包
ILoginView
package com.daydayup.day14_gouwuche.view; /** * Created by AIlt on 2018/5/3. */ public interface ILoginView { void showLoginSuccess(String json);//登陆成功 void showLoginError(String error);//登录失败 //获取输入的mobile String getMobile(); //获取输入的password String getPassword(); }
LoginActivity
package com.daydayup.day14_gouwuche.view; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.daydayup.day14_gouwuche.R; import com.daydayup.day14_gouwuche.model.LoginRegModelImpl; import com.daydayup.day14_gouwuche.presenter.LoginPresenterImpl; public class LoginActivity extends AppCompatActivity implements View.OnClickListener , ILoginView{ private static final String TAG = "LoginActivity"; private EditText mobile; private EditText password; private Button login; private Button reg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); initView(); initDatas(); } private void initView() { mobile = findViewById(R.id.login_mobile); password = findViewById(R.id.login_password); login = findViewById(R.id.login); reg = findViewById(R.id.reg); login.setOnClickListener(this); reg.setOnClickListener(this); } private void initDatas() { } @Override public void onClick(View v) { switch (v.getId()){ case R.id.login: LoginPresenterImpl loginPresenter = new LoginPresenterImpl(); loginPresenter.getLoginToView(new LoginRegModelImpl(),this); break; case R.id.reg: break; } } //登陆成功回掉 @Override public void showLoginSuccess(String json) { Toast.makeText(this, "登陆成功"+json, Toast.LENGTH_SHORT).show(); Log.d(TAG, "showLoginSuccess: 0+"+json); Intent intent = new Intent(LoginActivity.this,MainActivity.class); startActivity(intent); } //登陆失败回掉 @Override public void showLoginError(String error) { Toast.makeText(this, "登陆失败"+error, Toast.LENGTH_SHORT).show(); Log.d(TAG, "showLoginError: "+error); } //发送用户输入的mobile @Override public String getMobile() { return mobile.getText().toString(); } //获取用户输入的passsword @Override public String getPassword() { return password.getText().toString(); } }
布局
activity_login
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.daydayup.day14_gouwuche.view.LoginActivity"> <EditText android:id="@+id/login_mobile" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/login_password" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登陆"/> <Button android:id="@+id/reg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="注册"/> </LinearLayout>