IModel
public interface IModel {
void Login(String url,String phone,String pwd,LoginCallBack loginCallBack);
interface LoginCallBack{
void Success(String data);
}
void Regist(String url,String phone,String pwd,RegistCallBack registCallBack);
interface RegistCallBack{
void Success(String data);
}
}
Model
public class Model implements IModel {
@Override
public void Login(String url, String phone, String pwd, final LoginCallBack loginCallBack) {
OkHttpUtils.okHttpPost(url, phone, pwd, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
loginCallBack.Success(response.body().string());
}
});
}
@Override
public void Regist(String url, String phone, String pwd, final RegistCallBack registCallBack) {
OkHttpUtils.okHttpPost(url, phone, pwd, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
registCallBack.Success(response.body().string());
}
});
}
}
IPresenter
public interface IPresenter {
void getLoginPre(String name,String pwd);
void getRegistPre(String name,String pwd);
}
Presenter
public class Presenter implements IPresenter {
public static String url ="http://172.17.8.100/small/user/v1/login";
public static String urls ="http://172.17.8.100/small/user/v1/register";
private final Model model;
private IView iView1;
private View view1;
public Presenter(IView iView) {
iView1 = iView;
model = new Model();
}
public Presenter(View view) {
view1 = view;
model = new Model();
}
@Override
public void getLoginPre(String name, String pwd) {
model.Login(url, name, pwd, new IModel.LoginCallBack() {
@Override
public void Success(String data) {
iView1.getLoginView(data);
}
});
}
@Override
public void getRegistPre(String name, String pwd) {
model.Regist(urls, name, pwd, new IModel.RegistCallBack() {
@Override
public void Success(String data) {
view1.getRegistView(data);
}
});
}
}
OkHttpUtils网络请求
public class OkHttpUtils {
private static OkHttpClient okHttpClient;
private static Request request;
private static OkHttpClient client;
private static RequestBody build;
private static Request requestBuild;
private static OkHttpUtils instance;
// private Interceptor getInterceptor(){
// Interceptor interceptor = new Interceptor(){
// @Override
// public Response intercept(Chain chain) throws IOException {
// Request request = chain.request();
// Log.e("+++++","拦截前");
// Response proceed = chain.proceed(request);
// Log.e("+++++","拦截后");
// return proceed;
// }
// };
// return interceptor;
// }
// public static OkHttp getInstance(){
// if (instance==null){
// synchronized (OkHttp.class){
// if (null==instance){
// instance = new OkHttp();
// }
//
// }
// }
// return instance;
// }
public static void okHttpGet(String url, final Callback callback){
okHttpClient = new OkHttpClient();
request = new Request.Builder().url(url).method("GET", null).build();
okHttpClient.newCall(request).enqueue(callback);
}
public static void okHttpPost(String url,String name,String pwd,Callback callback){
okHttpClient = new OkHttpClient();
build = new FormBody.Builder().add("phone", name).add("pwd", pwd).build();
requestBuild = new Request.Builder().url(url).post(OkHttpUtils.build).build();
okHttpClient.newCall(requestBuild).enqueue(callback);
}
}
MainActivity页面,登录
package wangyaowei.bw.com.login;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.gson.Gson;
import wangyaowei.bw.com.login.bean.LoginBean;
import wangyaowei.bw.com.login.presenter.Presenter;
import wangyaowei.bw.com.login.view.IView;
public class MainActivity extends AppCompatActivity implements IView {
private EditText phone;
private EditText pwd;
private Button login;
private Presenter presenter;
private Button regist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
phone = findViewById(R.id.phone);
pwd = findViewById(R.id.pwd);
login = findViewById(R.id.login);
regist = findViewById(R.id.regist);
//跳到注册页面
regist.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,RegistActivity.class);
startActivity(intent);
}
});
presenter = new Presenter(this);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phones = phone.getText().toString();
String pwds = pwd.getText().toString();
if (TextUtils.isEmpty(phones)||TextUtils.isEmpty(pwds)){
Toast.makeText(MainActivity.this,"用户名或密码不能为空",Toast.LENGTH_SHORT).show();
}else {
presenter.getLoginPre(phones,pwds);
}
}
});
}
@Override
public void getLoginView(final String data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
LoginBean loginBean = gson.fromJson(data, LoginBean.class);
String status = loginBean.getStatus();
if (status.equals("0000")){
Intent intent = new Intent(MainActivity.this,ShowActivity.class);
startActivity(intent);
finish();
}else {
Toast.makeText(MainActivity.this,"登录失败",Toast.LENGTH_SHORT).show();
}
}
});
}
}
RegistActivity页面
package wangyaowei.bw.com.login;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.gson.Gson;
import wangyaowei.bw.com.login.bean.RegistBean;
import wangyaowei.bw.com.login.presenter.Presenter;
import wangyaowei.bw.com.login.view.View;
public class RegistActivity extends AppCompatActivity implements View {
private EditText reg_phone;
private EditText reg_pwd;
private Button reg_regist;
private Presenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_regist);
reg_phone = findViewById(R.id.reg_phone);
reg_pwd = findViewById(R.id.reg_pwd);
reg_regist = findViewById(R.id.reg_regist);
presenter = new Presenter(this);
reg_regist.setOnClickListener(new android.view.View.OnClickListener() {
@Override
public void onClick(android.view.View v) {
String phone = reg_phone.getText().toString();
String pwd = reg_pwd.getText().toString();
if (TextUtils.isEmpty(phone)||TextUtils.isEmpty(pwd)){
Toast.makeText(RegistActivity.this, "输入内容不能为空", Toast.LENGTH_SHORT).show();
}else{
presenter.getRegistPre(phone,pwd);
}
}
});
}
@Override
public void getRegistView(final String data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
RegistBean regisBean = gson.fromJson(data, RegistBean.class);
String status = regisBean.getStatus();
Log.i("aaaaaaa", "run: "+status);
if (status.equals("0000")){
Toast.makeText(RegistActivity.this,"注册成功",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(RegistActivity.this,MainActivity.class);
startActivity(intent);
finish();
}else{
Toast.makeText(RegistActivity.this, "注册格式不对或已注册"+status, Toast.LENGTH_SHORT).show();
}
}
});
}
}
ShowActivity页面,底部导航
package wangyaowei.bw.com.login;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RadioGroup;
import wangyaowei.bw.com.login.fragment.One;
import wangyaowei.bw.com.login.fragment.Three;
import wangyaowei.bw.com.login.fragment.Two;
public class ShowActivity extends AppCompatActivity implements View.OnClickListener {
private One one;
private Two two;
private Three three;
private RadioGroup group;
private FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
Button button1 = findViewById(R.id.button1);
Button button2 = findViewById(R.id.button2);
Button button3 = findViewById(R.id.button3);
group = findViewById(R.id.group);
one = new One();
two = new Two();
three = new Three();
transaction.add(R.id.frame, one);
transaction.add(R.id.frame, two);
transaction.add(R.id.frame, three);
transaction.show(one).hide(two).hide(three);
transaction.commit();
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
FragmentTransaction fragmentTransaction = manager.beginTransaction();
switch (v.getId()){
case R.id.button1:
fragmentTransaction.show(one).hide(two).hide(three).commit();
break;
case R.id.button2:
fragmentTransaction.show(two).hide(one).hide(three).commit();
break;
case R.id.button3:
fragmentTransaction.show(three).hide(two).hide(one).commit();
break;
}
}
}