adpter适配器
package com.bw.zsd.myapplication0215.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bw.zsd.myapplication0215.R;
import com.bw.zsd.myapplication0215.bean.CartBean;
import java.util.ArrayList;
import java.util.List;
/**
* @Auther: ZSD
* @Date: 2019/2/17 0017 16:08:18
* @Description:
*/
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private List<CartBean.ResultBean> list;
private Context context;
public RecyclerViewAdapter( List<CartBean.ResultBean> list,Context context) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.reitem, null,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerViewAdapter.ViewHolder viewHolder, int i) {
String masterPic = list.get(i).getMasterPic();
String commodityName = list.get(i).getCommodityName();
Glide.with(context).load(masterPic).placeholder(R.drawable.ic_launcher_background).error(R.drawable.ic_launcher_background).into(viewHolder.imageView);
viewHolder.title.setText(commodityName);
}
@Override
public int getItemCount() {
if (list != null) {
return list.size();
}else {
return 0;
}
}
public class ViewHolder extends RecyclerView.ViewHolder{
public ImageView masterPic;
private TextView title,info;
private TextView pic_id;
private final ImageView imageView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title_id);
pic_id = itemView.findViewById(R.id.pic_id);
info = itemView.findViewById(R.id.infmention_id);
imageView = itemView.findViewById(R.id.image_id);
}
}
}
bean类
package com.bw.zsd.myapplication0215.bean;
import java.util.List;
/**
* @Auther: ZSD
* @Date: 2019/2/16 0016 21:30:55
* @Description:
*/
public class CartBean {
private String message;
private String status;
private List<ResultBean> result;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public List<ResultBean> getResult() {
return result;
}
public void setResult(List<ResultBean> result) {
this.result = result;
}
public static class ResultBean {
private int commodityId;
private String commodityName; // name
private String masterPic; // 图片路径
private int price;
private int saleNum;
public int getCommodityId() {
return commodityId;
}
public void setCommodityId(int commodityId) {
this.commodityId = commodityId;
}
public String getCommodityName() {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public String getMasterPic() {
return masterPic;
}
public void setMasterPic(String masterPic) {
this.masterPic = masterPic;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getSaleNum() {
return saleNum;
}
public void setSaleNum(int saleNum) {
this.saleNum = saleNum;
}
}
}
interfaces
登录接口
package com.bw.zsd.myapplication0215.interfaces;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 19:34:17
* @Description:
*/
public interface LoginCallBack {
public void RegSucces(String succesinfo);
public void RegError(String errinfo);
}
package com.bw.zsd.myapplication0215.interfaces;
import com.bw.zsd.myapplication0215.bean.CartBean;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 16:32:30
* @Description:
*/
public interface ReCallBack {
public void ReSucces(CartBean SuccesObj);
public void ReError(String ErrorStr);
}
model
package com.bw.zsd.myapplication0215.model;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import com.bw.zsd.myapplication0215.interfaces.LoginCallBack;
import com.bw.zsd.myapplication0215.util.OkhttpClientUtile;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 09:00:41
* @Description: 业务逻辑
*/
public class ModelLogin implements ModelLoginInterface {
LoginCallBack loginCallBack;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String info = (String) msg.obj;
if (info.contains("失败")) {
loginCallBack.RegError(info);
}else {
loginCallBack.RegSucces(info);
}
}
};
@Override
public void requestNetWork(int rt, String phone, String pwd, LoginCallBack loginCallBack) {
this.loginCallBack = loginCallBack;
OkhttpClientUtile.PostRequest(rt,phone,pwd,handler);
}
}
接口
package com.bw.zsd.myapplication0215.model;
import com.bw.zsd.myapplication0215.interfaces.LoginCallBack;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 19:03:52
* @Description: 请求网络数据
*/
public interface ModelLoginInterface {
public void requestNetWork(int rt,String phone,String pwd,LoginCallBack loginCallBack);
}
package com.bw.zsd.myapplication0215.model;
import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import com.bw.zsd.myapplication0215.bean.CartBean;
import com.bw.zsd.myapplication0215.interfaces.LoginCallBack;
import com.bw.zsd.myapplication0215.interfaces.ReCallBack;
import com.bw.zsd.myapplication0215.util.OkhttpClientUtile;
import com.google.gson.Gson;
import java.util.List;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 19:43:41
* @Description:判断正确错误
*/
public class ModelRe implements ModelReInterface {
ReCallBack reCallBack;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String s = (String) msg.obj;
Gson gson = new Gson();
CartBean cartBean = gson.fromJson(s, CartBean.class);
if (cartBean != null) {
reCallBack.ReSucces(cartBean);
}else {
reCallBack.ReError("请求商品失败");
}
}
};
@Override
public void RequestDate(ReCallBack callBack) {
this.reCallBack=callBack;
OkhttpClientUtile.getRequest(handler);
}
}
package com.bw.zsd.myapplication0215.model;
import com.bw.zsd.myapplication0215.bean.CartBean;
import com.bw.zsd.myapplication0215.interfaces.ReCallBack;
/**
* @Auther: ZSD
* @Date: 2019/2/16 0016 21:38:39
* @Description:
*/
public interface ModelReInterface {
public void RequestDate(ReCallBack callBack);
}
presnter
package com.bw.zsd.myapplication0215.presenter;
import android.content.Context;
import com.bw.zsd.myapplication0215.interfaces.LoginCallBack;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 09:06:18
* @Description: 控制层
*/
public interface PersenterLoginInterface {
public void getPhonePwd(int rt,String Phone, String pwd);
}
package com.bw.zsd.myapplication0215.presenter;
import com.bw.zsd.myapplication0215.bean.CartBean;
import com.bw.zsd.myapplication0215.interfaces.ReCallBack;
import com.bw.zsd.myapplication0215.model.ModelRe;
import com.bw.zsd.myapplication0215.model.ModelReInterface;
import com.bw.zsd.myapplication0215.view.ViewReInterface;
/**
* @Auther: ZSD
* @Date: 2019/2/17 0017 11:22:40
* @Description:
*/
public class PersenterRe implements PresenterReInterface{
ViewReInterface viewReInterface;
ModelReInterface modelReInterface;
public PersenterRe(ViewReInterface viewReInterface) {
this.viewReInterface = viewReInterface;
modelReInterface = new ModelRe();
}
@Override
public void toModelCtrell() {
modelReInterface.RequestDate( new ReCallBack() {
@Override
public void ReSucces(CartBean SuccesObj) {
viewReInterface.refreshRecyView(SuccesObj);
}
@Override
public void ReError(String ErrorStr) {
viewReInterface.refreshRecyView(ErrorStr);
}
});
}
}
package com.bw.zsd.myapplication0215.presenter;
import android.content.Context;
import com.bw.zsd.myapplication0215.interfaces.LoginCallBack;
import com.bw.zsd.myapplication0215.model.ModelLogin;
import com.bw.zsd.myapplication0215.model.ModelLoginInterface;
import com.bw.zsd.myapplication0215.view.ViewInterface;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 09:05:52
* @Description:
*/
public class PresenterLogin implements PersenterLoginInterface {
ModelLoginInterface modelLoginInterface;
ViewInterface viewInterface;
public PresenterLogin(ViewInterface viewInterface) {
modelLoginInterface = new ModelLogin();
this.viewInterface = viewInterface;
}
@Override
public void getPhonePwd(final int rt, String Phone, String pwd) {
modelLoginInterface.requestNetWork(rt, Phone, pwd, new LoginCallBack() {
@Override
public void RegSucces(String succesinfo) {
viewInterface.refrechDisplay(rt,succesinfo);
}
@Override
public void RegError(String errinfo) {
viewInterface.refrechDisplay(rt,errinfo);
}
});
}
}
package com.bw.zsd.myapplication0215.presenter;
import com.bw.zsd.myapplication0215.bean.CartBean;
/**
* @Auther: ZSD
* @Date: 2019/2/17 0017 11:21:16
* @Description:
*/
public interface PresenterReInterface {
public void toModelCtrell();
}
util
package com.bw.zsd.myapplication0215.util;
import android.os.Handler;
import android.os.Message;
import org.json.JSONObject;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* @Auther: ZSD
* @Date: 2019/2/16 0016 21:47:52
* @Description:
*/
public class OkhttpClientUtile {
static String info = "";
public static void PostRequest(int rt, String phone, String pwd, final Handler handler) {
String url = "";
if (rt == 0) {
//登录接口
url = "http://172.17.8.100/small/user/v1/login";
} else {
url = "http://172.17.8.100/small/user/v1/register";
}
OkHttpClient okHttpClient = new OkHttpClient();
FormBody builder = new FormBody.Builder()
.add("phone", phone)
.add("pwd", pwd)
.build();
final Request request = new Request.Builder()
.post(builder)
.url(url)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
info = "您注册失败了!";
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonStr = response.body().string();
try {
JSONObject jsonObject = new JSONObject(jsonStr);
info = jsonObject.getString("message");
Message message = new Message();
message.obj = info;
handler.sendMessage(message);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public static void getRequest(final Handler mhandler) {
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.get()
.url("http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?keyword=3&page=1&count=5")
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Message message = new Message();
message.obj=string;
mhandler.sendMessage(message);
}
});
}
}
view
package com.bw.zsd.myapplication0215.view;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.bw.zsd.myapplication0215.R;
import com.bw.zsd.myapplication0215.adapter.RecyclerViewAdapter;
import com.bw.zsd.myapplication0215.bean.CartBean;
import com.bw.zsd.myapplication0215.presenter.PersenterRe;
import com.bw.zsd.myapplication0215.presenter.PresenterReInterface;
import java.util.ArrayList;
import java.util.List;
public class Main2Activity extends AppCompatActivity implements ViewReInterface{
private RecyclerView recyclerView;
private PresenterReInterface presenterReInterface;
private RecyclerViewAdapter recyclerViewAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
presenterReInterface = new PersenterRe(this);
recyclerView = findViewById(R.id.main2_RecyclerView);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
presenterReInterface.toModelCtrell();
}
@Override
public void refreshRecyView(Object obj) {
CartBean cartBean = (CartBean) obj;
recyclerViewAdapter = new RecyclerViewAdapter(cartBean.getResult(), Main2Activity.this);
Toast.makeText(Main2Activity.this,"sdsa561d56sa41d5"+obj,Toast.LENGTH_SHORT).show();
recyclerView.setAdapter(recyclerViewAdapter);
}
}
package com.bw.zsd.myapplication0215.view;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.bw.zsd.myapplication0215.R;
import com.bw.zsd.myapplication0215.interfaces.LoginCallBack;
import com.bw.zsd.myapplication0215.presenter.PresenterLogin;
import com.bw.zsd.myapplication0215.presenter.PersenterLoginInterface;
public class MainActivity extends AppCompatActivity implements ViewInterface, View.OnClickListener{
EditText UserName;
EditText UserPwd;
Button but_login;
Button but_registe;
private PersenterLoginInterface userPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
userPresenter = new PresenterLogin(this);
}
private void initView () {
UserName = findViewById(R.id.ed_UserName_id);
UserPwd = findViewById(R.id.ed_PassWord_id);
but_login = findViewById(R.id.but_login_id);
but_registe = findViewById(R.id.but_regist_id);
but_login.setOnClickListener(this);
but_registe.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (R.id.but_login_id == v.getId()) {
String userName = UserName.getText().toString();
String passWord = UserPwd.getText().toString();
userPresenter.getPhonePwd(0,userName,passWord);
}
if (R.id.but_regist_id == v.getId()) {
String userNames = UserName.getText().toString();
String passWords = UserPwd.getText().toString();
userPresenter.getPhonePwd(1,userNames,passWords);
}
}
@Override
public void refrechDisplay(int tag, String info) {
if(info.equals("登录成功")){
Toast.makeText(this , info , Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this , Main2Activity.class);
startActivity(intent);
}else {
Toast.makeText(this , info , Toast.LENGTH_SHORT).show();
}
}
}
package com.bw.zsd.myapplication0215.view;
/**
* @Auther: ZSD
* @Date: 2019/2/15 0015 09:03:50
* @Description: 显示 成功失败
*/
public interface ViewInterface {
//登陆等dai
public void refrechDisplay(int tag,String info);
}
package com.bw.zsd.myapplication0215.view;
import com.bw.zsd.myapplication0215.bean.CartBean;
/**
* @Auther: ZSD
* @Date: 2019/2/17 0017 11:25:48
* @Description:
*/
public interface ViewReInterface {
public void refreshRecyView(Object obj);
}
依赖
implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.codavel.bolina:interceptor_okhttp3:1.0.0' implementation 'com.github.bumptech.glide:glide:4.9.0'