仿京东 我的页面

本文详细介绍了如何仿照京东App创建个人中心页面,涵盖了从信息Bean的设计,到MVP三层架构的实现,包括M层逻辑、P层接口及V层视图展示。还涉及到多个适配器的编写和各种布局的定制,如登录、注册、推荐内容等模块的UI设计。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值