MVP登录

MainActivity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @BindView(R.id.mobile)
    EditText mobile;
    @BindView(R.id.pwd)
    EditText pwd;
    @BindView(R.id.login)
    Button login;
    private LoginPresenter loginPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //绑定控件
        ButterKnife.bind(this);

        loginPresenter = new LoginPresenter(new LoginCall());

        login.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.login:
                String name = mobile.getText().toString();
                String password = pwd.getText().toString();
                loginPresenter.reqeust(name,password);
                break;
        }

    }


    class LoginCall implements DataCall<Result>{
        @Override
        public void success(Result data) {
            Toast.makeText(MainActivity.this, ""+data.getMessage(), Toast.LENGTH_SHORT).show();
            if (data.getMessage().equals("登录成功")){
                Intent intent = new Intent(MainActivity.this,ShowActivity.class);
                startActivity(intent);
            }
        }
    }
}

Result

public class Result<T> {
    String message;
    String status;
    T 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 T getResult() {
        return result;
    }

    public void setResult(T result) {
        this.result = result;
    }
}

LoginBean

@Entity
public class LoginSuccess {
    String headPic;
    String nickName;
    String phone;
    String sessionId;
    int sex;
    @Id
    long userId;
    int statues;

    public LoginSuccess(String headPic, String nickName, String phone, String sessionId, int sex, long userId, int statues) {
        this.headPic = headPic;
        this.nickName = nickName;
        this.phone = phone;
        this.sessionId = sessionId;
        this.sex = sex;
        this.userId = userId;
        this.statues = statues;
    }
}

BannerBean

public class Banners {
    String imageUrl;
    String jumpUrl;
    int rank;

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public String getJumpUrl() {
        return jumpUrl;
    }

    public void setJumpUrl(String jumpUrl) {
        this.jumpUrl = jumpUrl;
    }

    public int getRank() {
        return rank;
    }

    public void setRank(int rank) {
        this.rank = rank;
    }
}

/*商品的*/
public class HomeData {

    private List<RxxpBean> rxxp;

    public List<RxxpBean> getRxxp() {
        return rxxp;
    }

    public void setRxxp(List<RxxpBean> rxxp) {
        this.rxxp = rxxp;
    }

    public static class RxxpBean{
        /*commodityList jsonArray 商品信息
        id int 归属标签id
        name string
        */
        private int id;
        private String name;
        private ArrayList<CommodityListBean> commodityList;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public ArrayList<CommodityListBean> getCommodityList() {
            return commodityList;
        }

        public void setCommodityList(ArrayList<CommodityListBean> commodityList) {
            this.commodityList = commodityList;
        }
    }

    /*commodityId int 商品id
    commodityName string 商品名称
    masterPic string 缩略图
    price double 价格
    saleNum int 销量*/

    public static class CommodityListBean{
        private int commodityId;
        private String commodityName;
        private String masterPic;
        private double 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 double getPrice() {
            return price;
        }

        public void setPrice(double price) {
            this.price = price;
        }

        public int getSaleNum() {
            return saleNum;
        }

        public void setSaleNum(int saleNum) {
            this.saleNum = saleNum;
        }
    }


}

DataCall

public interface DataCall<T> {
    void success(T data);
}

IRequest

public interface IRequest {
    /*登录*/
    @FormUrlEncoded
    @POST("user/v1/login")
    Observable<Result<LoginSuccess>> login(@Field("phone") String m,@Field("pwd") String p);

    /*轮播图
    * http://172.17.8.100/small/commodity/v1/bannerShow
    * */
    @GET("commodity/v1/bannerShow")
    Observable<Result<List<Banners>>> bannerShow();
    
/*商品*/
//http://172.17.8.100/small/commodity/v1/commodityList
@GET("commodity/v1/commodityList")
Observable<Result<HomeData>> goodsShow();

}

BannerModle

public class BannerModle {
    public static IRequest get() {
        IRequest iRequest = NetWorkMager.instance().create(IRequest.class);
        return iRequest;
    }
}

BannerPresenter

public class BannerPresenter extends BasePresenter {
    public BannerPresenter(DataCall consumer) {
        super(consumer);
    }

    @Override
    protected Observable observable(Object... args) {
        IRequest iRequest = BannerModle.get();
        return iRequest.bannerShow();
    }
}

loginPresenter

public class LoginPresenter extends BasePresenter {
    public LoginPresenter(DataCall consumer) {
        super(consumer);
    }

    @Override
    protected Observable observable(Object... args) {
        IRequest iRequest = NetWorkMager.instance().create(IRequest.class);
        return iRequest.login((String) args[0],(String) args[1]);
    }
}

SpPresenter

public class HomeDataPresenter extends BasePresenter {
    public HomeDataPresenter(DataCall consumer) {
        super(consumer);
    }

    @Override
    protected Observable observable(Object... args) {
        IRequest iRequest = NetWorkMasnger.instance().create(IRequest.class);
        return iRequest.goodsShow();
    }
}

Adapter

public class RxxpAdapter extends RecyclerView.Adapter<RxxpAdapter.MyViewHolder> {
    Context context;
    List<HomeData.CommodityListBean> mList = new ArrayList<>();

    public RxxpAdapter(Context context) {
        this.context = context;
    }

    @NonNull
    @Override
    public RxxpAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view =LayoutInflater.from(context).inflate(R.layout.rxxp,viewGroup,false);
        MyViewHolder myHolder = new MyViewHolder(view);
        return myHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull RxxpAdapter.MyViewHolder myViewHolder, int i) {
        HomeData.CommodityListBean commodityListBean = mList.get(i);
        final int commodityId = commodityListBean.getCommodityId();
        final double price = commodityListBean.getPrice();
        final String commodityName = commodityListBean.getCommodityName();
        final int saleNum = commodityListBean.getSaleNum();
        final String url = commodityListBean.getMasterPic();
        String[] split = url.split("\\|");
        Glide.with(context).load(url).into(myViewHolder.rxxpIv);
        /*if (split.length>0){

            String replace = url.replace("https", "http");
        }*/
        myViewHolder.rxxpTv2.setText(price+"¥");
        myViewHolder.rxxpTv.setText(commodityName);
    }

    @Override
    public int getItemCount() {
        return mList.size();
    }

    public void addData(List<HomeData.CommodityListBean> commodityList) {
        if (commodityList!=null){
            mList.addAll(commodityList);
        }
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        private ImageView rxxpIv;
        private TextView rxxpTv;
        private TextView rxxpTv2;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);

            rxxpIv = (ImageView) itemView.findViewById(R.id.rxxp_iv);
            rxxpTv = (TextView) itemView.findViewById(R.id.rxxp_tv);
            rxxpTv2 = (TextView) itemView.findViewById(R.id.rxxp_tv2);
        }
    }
}

跳转Activity

public class ShowActivity extends AppCompatActivity {

    @BindView(R.id.banner)
    MZBannerView banner;
    ArrayList<String> bannerUrl = new ArrayList<>();
    private BannerPresenter bannerPresenter;
    HomeDataPresenter homeDataPresenter=new HomeDataPresenter(new GoodsCall());
   private RxxpAdapter rxxpRecycler;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);

        //绑定控件
        ButterKnife.bind(this);

       bannerPresenter = new BannerPresenter(new BannerCall());
        bannerPresenter.reqeust();

    rxxpRecycler = new RxxpAdapter(this);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    rv.setLayoutManager(linearLayoutManager);
    rv.setAdapter(rxxpRecycler);
    homeDataPresenter.reqeust();


    }
    class GoodsCall implements DataCall<Result> {


    @Override
    public void success(Result data) {
        HomeData goodsResult = (HomeData) data.getResult();
        List<HomeData.RxxpBean> rxxp = goodsResult.getRxxp();
        //热销商品
        for (int i = 0; i < rxxp.size(); i++) {
            List<HomeData.CommodityListBean> commodityList = rxxp.get(i).getCommodityList();
            rxxpRecycler.addData(commodityList);
        }
        rxxpRecycler.notifyDataSetChanged();



    }

}

    class BannerCall implements DataCall<Result<List<Banners>>> {

        @Override
        public void success(Result<List<Banners>> data) {
            List<Banners> result = (List<Banners>) data.getResult();
            for (int i = 0; i < result.size(); i++) {
                String ImageUrl = result.get(i).getImageUrl();
                bannerUrl.add(ImageUrl);
            }

            banner.setPages(bannerUrl, new MZHolderCreator<BannerViewHolder>() {
                @Override
                public BannerViewHolder createViewHolder() {
                    return new BannerViewHolder();
                }
            });

            banner.start();
        }
    }

    public static class BannerViewHolder implements MZViewHolder<String> {

        private SimpleDraweeView sd;

        @Override
        public View createView(Context context) {
            View view = LinearLayout.inflate(context,R.layout.banner,null);
            //View view = LayoutInflater.from(context).inflate(R.layout.banner, null);
            sd = view.findViewById(R.id.sd);
            return view;
        }

        @Override
        public void onBind(Context context, int i, String s) {
            //数据绑定
            sd.setImageURI(Uri.parse(s));
        }
    }

    //mMZBanner使用
    @Override
    public void onPause() {
        super.onPause();
        banner.pause();//暂停轮播
    }

    @Override
    public void onResume() {
        super.onResume();
        banner.start();//开始轮播
    }
}

MApp

public class MApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        Fresco.initialize(this);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值