1.信息bean
package com.example.dell.jingdong201804.model.WoDe; public class UserBean { private String msg; private String code; private DataBean data; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public DataBean getData() { return data; } public void setData(DataBean data) { this.data = data; } public static class DataBean { private Object age; private Object appkey; private String appsecret; private String createtime; private Object email; private int fans; private int follow; private int gender; private String icon; private Object latitude; private Object longitude; private String mobile; private int money; private String nickname; private String password; private Object praiseNum; private String token; private int uid; private Object userId; private String username; public Object getAge() { return age; } public void setAge(Object age) { this.age = age; } public Object getAppkey() { return appkey; } public void setAppkey(Object appkey) { this.appkey = appkey; } public String getAppsecret() { return appsecret; } public void setAppsecret(String appsecret) { this.appsecret = appsecret; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public Object getEmail() { return email; } public void setEmail(Object email) { this.email = email; } public int getFans() { return fans; } public void setFans(int fans) { this.fans = fans; } public int getFollow() { return follow; } public void setFollow(int follow) { this.follow = follow; } public int getGender() { return gender; } public void setGender(int gender) { this.gender = gender; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public Object getLatitude() { return latitude; } public void setLatitude(Object latitude) { this.latitude = latitude; } public Object getLongitude() { return longitude; } public void setLongitude(Object longitude) { this.longitude = longitude; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Object getPraiseNum() { return praiseNum; } public void setPraiseNum(Object praiseNum) { this.praiseNum = praiseNum; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public Object getUserId() { return userId; } public void setUserId(Object userId) { this.userId = userId; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } }
2.我的Bean1
package com.example.dell.jingdong201804.model.WoDe; import android.content.Intent; public class WoDeBean { private int img; private String name; public WoDeBean(int img, String name) { this.img = img; this.name = name; } public int getImg() { return img; } public void setImg(int img) { this.img = img; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3.我的Bean2
package com.example.dell.jingdong201804.model.WoDe; public class WoDeBean2 { private int img; private String name; public WoDeBean2(int img, String name) { this.img = img; this.name = name; } public int getImg() { return img; } public void setImg(int img) { this.img = img; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
4.M层
package com.example.dell.jingdong201804.model.WoDe; import retrofit2.http.Query; public interface WoDeDataModel { //定义请求数据的方法 void getWoDeDataModel(String url,String mobile,String password); }
5.M层实现
package com.example.dell.jingdong201804.model.WoDe; import android.util.Log; import com.example.dell.jingdong201804.presenter.WoDe.MyWoDeDataPresenter; import com.example.dell.jingdong201804.utils.RetrofitUtils; import io.reactivex.Observable; public class MyWoDeDataModel implements WoDeDataModel { //创建构造器 将P层传给M层 MyWoDeDataPresenter presenter; public MyWoDeDataModel(MyWoDeDataPresenter presenter){ this.presenter=presenter; } @Override public void getWoDeDataModel(String url,String mobile, String password) { Observable<UserBean> getlogin = RetrofitUtils.getInstance(url).getApiService().getzc(mobile, password); //调用P层的方法 将数据传给P层 presenter.Success(getlogin); } }
6.P层
package com.example.dell.jingdong201804.presenter.WoDe; import com.example.dell.jingdong201804.model.WoDe.UserBean; import io.reactivex.Observable; public interface WoDeDataPresenter { //定义成功与失败的方法 void Success(Observable<UserBean> getlogin); }
7.p实现
package com.example.dell.jingdong201804.presenter.WoDe; import android.util.Log; import com.example.dell.jingdong201804.model.WoDe.MyWoDeDataModel; import com.example.dell.jingdong201804.model.WoDe.UserBean; import com.example.dell.jingdong201804.view.WoDe.WoDeDataView; import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; public class MyWoDeDataPresenter implements WoDeDataPresenter{ //创建构造器 将v层传给p层 WoDeDataView dataView; private final MyWoDeDataModel model; public MyWoDeDataPresenter(WoDeDataView dataView){ this.dataView=dataView; //实例化M层 将P层传给M层 model = new MyWoDeDataModel(this); } @Override public void Success(Observable<UserBean> getlogin) { getlogin.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<UserBean>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(UserBean userBean) { if(userBean!=null){ Log.e("P层", "onNext: "+userBean.getMsg() ); //调用V层 将数据传给V层 dataView.toBackHome(userBean); } } @Override public void onError(Throwable e) { Log.e("P层", "onNext: "+e ); //调用V层 将异常传给V层 dataView.Error(e); } @Override public void onComplete() { } }); } //创建接收url 用户名 密码的方法 public void getxx(String url,String mobile, String password){ model.getWoDeDataModel(url,mobile,password); } }
8.V层
package com.example.dell.jingdong201804.view.WoDe; import com.example.dell.jingdong201804.model.WoDe.UserBean; public interface WoDeDataView { void toBackHome(UserBean userBean); void Error(Throwable e); }
9.V层实现
package com.example.dell.jingdong201804.fragment; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.dell.jingdong201804.R; import com.example.dell.jingdong201804.adapter.WoDe.WoDeAdapter; import com.example.dell.jingdong201804.adapter.WoDe.WoDeAdapter2; import com.example.dell.jingdong201804.adapter.WoDe.WoDeTJAdapter; import com.example.dell.jingdong201804.model.ShouYe.ShouYeDataBean.ShouYeDataBean; import com.example.dell.jingdong201804.model.WoDe.WoDeBean; import com.example.dell.jingdong201804.model.WoDe.WoDeBean2; import com.example.dell.jingdong201804.presenter.ShouYe.MyShouYeDataPrsenter; import com.example.dell.jingdong201804.view.ShouYe.ShouYeDataView; import com.example.dell.jingdong201804.view.WoDe.WoDe_LoginActivity; import com.facebook.drawee.view.SimpleDraweeView; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; public class Fragment05 extends Fragment implements ShouYeDataView,WoDeTJAdapter.OnClickListener{ @BindView(R.id.wo_rcv) RecyclerView wo_Rcv; Unbinder unbinder; @BindView(R.id.wo_rcv2) RecyclerView wo_Rcv2; @BindView(R.id.wo_dl_zc) TextView wo_DlZc; @BindView(R.id.wo_userimg) SimpleDraweeView wo_Userimg; @BindView(R.id.wode_rcv_tj) RecyclerView wode_RcvTj; private List<WoDeBean> list; private List<WoDeBean2> list2; String url = "https://www.zhaoapi.cn/ad/getAd"; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); List<ShouYeDataBean.TuijianBean.ListBean> list3 = (List<ShouYeDataBean.TuijianBean.ListBean>) msg.obj; //进入适配器 WoDeTJAdapter woDeTJAdapter = new WoDeTJAdapter(getActivity(),list3); wode_RcvTj.setAdapter(woDeTJAdapter); //调用适配器中的接口 woDeTJAdapter.setOnClick(Fragment05.this); } }; private List<ShouYeDataBean.TuijianBean.ListBean> list3; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate