View
package view.bw.com.weekend3; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.EditText; import android.widget.Toast; import view.bw.com.persenter.LoginPersenter; public class MainActivity extends AppCompatActivity implements IMainActivity { /** * 请输入电话号 */ private EditText mEtMobile; /** * 请输入密码 */ private EditText mEtPass; private LoginPersenter loginPersenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { mEtMobile = (EditText) findViewById(R.id.et_mobile); mEtPass = (EditText) findViewById(R.id.et_pass); loginPersenter = new LoginPersenter(this); } public void btn_login(View view){ String mobile = mEtMobile.getText().toString(); String password = mEtPass.getText().toString(); loginPersenter.login(mobile,password); } public void btn_register(View view){ } @Override public void onFailed(String str) { Toast.makeText(this,str,Toast.LENGTH_SHORT).show(); } @Override public void onSuccess(Object o) { String result = o.toString(); Intent intent = new Intent(MainActivity.this,SecondActivity.class); intent.putExtra("result",result); startActivity(intent); } }
package view.bw.com.weekend3; /** * Created by lenovo on 2018/1/6. */ public interface IMainActivity { void onFailed(String str); void onSuccess(Object o); }
Persenter
package view.bw.com.persenter; import com.google.gson.Gson; import view.bw.com.bean.SupperClass; import view.bw.com.model.ILoginModel; import view.bw.com.model.LoginModel; import view.bw.com.weekend3.IMainActivity; /** * Created by lenovo on 2018/1/6. */ public class LoginPersenter implements ILoginPersenter { IMainActivity iMainActivity; ILoginModel loginModel; public LoginPersenter(IMainActivity iMainActivity) { this.iMainActivity = iMainActivity; loginModel = new LoginModel(); } @Override public void login(String mobile, String password) { loginModel.login(mobile,password,this); } @Override public void onFailed(String str) { if (null==iMainActivity){ return; } iMainActivity.onFailed(str); } @Override public void onSuccess(Object o) { if (null==iMainActivity){ return; } String result = o.toString(); Gson g = new Gson(); SupperClass supperClass = g.fromJson(result, SupperClass.class); String code = supperClass.getCode(); if (code.equals("0")){ iMainActivity.onSuccess(result); }else{ iMainActivity.onFailed(supperClass.getMsg()); } } @Override public void onDestory() { if (null!=iMainActivity){ iMainActivity = null; } } }
package view.bw.com.persenter; /** * Created by lenovo on 2018/1/6. */ public interface ILoginPersenter { void login(String mobile,String password); void onFailed(String str); void onSuccess(Object o); void onDestory(); }
Model
package view.bw.com.model; import android.os.Handler; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import view.bw.com.bean.ChangLiang; import view.bw.com.persenter.ILoginPersenter; /** * Created by lenovo on 2018/1/6. */ public class LoginModel implements ILoginModel{ private Handler handler = new Handler(); @Override public void login(String mobile, String password, final ILoginPersenter iLoginPersenter) { String url = ChangLiang.LOGIN_URL+"?mobile="+mobile+"&password="+password; OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .get() .url(url) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { iLoginPersenter.onFailed(e.getMessage()); } }); } @Override public void onResponse(Call call, Response response) throws IOException { final String result = response.body().string(); handler.post(new Runnable() { @Override public void run() { iLoginPersenter.onSuccess(result); } }); } }); } }最后别忘了加网络访问的权限package view.bw.com.model; import view.bw.com.persenter.ILoginPersenter; /** * Created by lenovo on 2018/1/6. */ public interface ILoginModel { void login(String mobile, String password, ILoginPersenter iLoginPersenter); }