retrofit+mvp

utils

public class RetrofitManager {
    private static final String URL = "http://www.zhaoapi.cn/";
    private final Retrofit mRetrofit;

    private static final class Instance{
        private static final RetrofitManager instance = new RetrofitManager();
    }
    public static RetrofitManager getInstance(){
        return Instance.instance;
    }
    private RetrofitManager(){
        mRetrofit = new Retrofit.Builder()
                .baseUrl(URL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(client())
                .build();
    }
    private OkHttpClient client(){
        return new OkHttpClient.Builder()
                .readTimeout(5000,TimeUnit.MILLISECONDS)
                .writeTimeout(5000, TimeUnit.MILLISECONDS)
                .build();
    }
    public Retrofit getmRetrofit(){
        return mRetrofit;
    }
    public <T> T create(Class<T> clazz){
        return mRetrofit.create(clazz);
    }
}

api

public interface IViewApi {

    @POST("home/getHome")
    Call<ProductBean> product();
    @FormUrlEncoded
    @POST("product/getProductDetail")
    Call<XIangQingBean> XiangQing(@Field("pid") int pid);
}

view

public interface IView {
    void failed(Exception e);

    void getProduct(List<ProductBean.DataBean.FenleiBean> list);

    void getXiangQing(XIangQingBean.DataBean beanL);
}

IcallBack

public interface ICallBack {
    void success(Object obj);

    void failed(Exception e);
}

model

public class ProductModel {
        int id;
    public void getProduct(final ICallBack callBack){

        IViewApi iViewApi = RetrofitManager.getInstance().create(IViewApi.class);
        Call<ProductBean> product = iViewApi.product();

        product.enqueue(new Callback<ProductBean>() {
            @Override
            public void onResponse(Call<ProductBean> call, Response<ProductBean> response) {
                if (response.isSuccessful()){
                    ProductBean body = response.body();
                    callBack.success(body);
                }
            }

            @Override
            public void onFailure(Call<ProductBean> call, Throwable t) {
                callBack.failed((Exception) t);
            }
        });
    }
    public void getXiangqing(final ICallBack callBack,int id){
        IViewApi iViewApi = RetrofitManager.getInstance().create(IViewApi.class);
        Call<XIangQingBean> xiangQing = iViewApi.XiangQing(id);
        xiangQing.enqueue(new Callback<XIangQingBean>() {
            @Override
            public void onResponse(Call<XIangQingBean> call, Response<XIangQingBean> response) {
                if (response.isSuccessful()){
                    XIangQingBean bodys = response.body();
                    callBack.success(bodys);
                }
            }

            @Override
            public void onFailure(Call<XIangQingBean> call, Throwable t) {
                callBack.failed((Exception) t);
            }
        });
    }
}

presenter

public class ProductPresenter {
    private IView iv;
    private ProductModel model;

    public void attach(IView iv){
        this.iv = iv;
        model = new ProductModel();
    }
    public void detach(){
        if (iv != null){
            iv = null;
        }
    }
    public void getProduct(){
        model.getProduct(new ICallBack() {
            @Override
            public void success(Object obj) {
                ProductBean data= (ProductBean) obj;
                iv.getProduct(data.getData().getFenlei());
            }

            @Override
            public void failed(Exception e) {

            }
        });
    }
    public void getXiangQing(int id){
        model.getXiangqing(new ICallBack() {
            @Override
            public void success(Object obj) {
                XIangQingBean qingBean = (XIangQingBean) obj;
                iv.getXiangQing(qingBean.getData());
            }

            @Override
            public void failed(Exception e) {

            }
        },id);
    }
}

adapter

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHolder> {
    private Context context;
    private List<ProductBean.DataBean.FenleiBean> list;

    public ProductAdapter(Context context, List<ProductBean.DataBean.FenleiBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
       View view = View.inflate(context, R.layout.layout_lisr,null);
       ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
    holder.imageLogo.setImageURI(list.get(position).getIcon());
    holder.txtTitle.setText(list.get(position).getName());
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context, ShowActivity.class);
            intent.putExtra("id",list.get(position).getCid());
            context.startActivity(intent);
        }
    });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder{
        private SimpleDraweeView imageLogo;
        private TextView txtTitle;
        public ViewHolder(View itemView) {
            super(itemView);
            imageLogo = itemView.findViewById(R.id.image_logo);
            txtTitle = itemView.findViewById(R.id.txt_title);
        }
    }
}

mainactivity

public class MainActivity extends AppCompatActivity implements IView {

    private ProductModel model;
    private RecyclerView rvProduct;
    private List<ProductBean.DataBean.FenleiBean> lists;
    private ProductPresenter presenter;
    private ProductAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rvProduct = findViewById(R.id.rc_product);
        presenter = new ProductPresenter();
        lists = new ArrayList<>();
        presenter.attach(this);
        presenter.getProduct();
        adapter = new ProductAdapter(this,lists);
        RecyclerView.LayoutManager layoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        rvProduct.setLayoutManager(layoutManager);
        rvProduct.setAdapter(adapter);
    }

    @Override
    public void failed(Exception e) {

    }

    @Override
    public void getProduct(List<ProductBean.DataBean.FenleiBean> list) {
        if (list != null){
            lists.clear();
            lists.addAll(list);
            adapter.notifyDataSetChanged();
        }
    }

    @Override
    public void getXiangQing(XIangQingBean.DataBean beanL) {
    }
}

showactivity

public class ShowActivity extends AppCompatActivity implements IView {

    @BindView(R.id.image_logo)
    SimpleDraweeView imageLogo;
    @BindView(R.id.txt_title)
    TextView txtTitle;
    private ProductPresenter presenter;
    private List<XIangQingBean.DataBean> list;
    private XiangQingAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);
        ButterKnife.bind(this);
        presenter = new ProductPresenter();
        presenter.attach(this);
        int id = getIntent().getIntExtra("id",1);
        presenter.getXiangQing(id);
       
    }

    @Override
    public void failed(Exception e) {
    }

    @Override
    public void getProduct(List<ProductBean.DataBean.FenleiBean> list) {
    }

    @Override
    public void getXiangQing(XIangQingBean.DataBean beanL) {
        Log.i("aaaaaaaaaaaaaaaaaaaaaaa", "getProduct: " + beanL);
        imageLogo.setImageURI(beanL.getImages().split("\\|")[0]);
        txtTitle.setText(beanL.getTitle());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
综合小区管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、车位管理、车位分配管理、出入管理、字典管理、房屋管理、物业费缴纳管理、公告管理、物业人员投诉管理、我的私信管理、物业人员管理、用户管理、管理员管理。用户的功能包括管理部门以及部门岗位信息,管理招聘信息,培训信息,薪资信息等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 综合小区管理系统管理系统可以提高综合小区管理系统信息管理问题的解决效率,优化综合小区管理系统信息处理流程,保证综合小区管理系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理综合小区管理系统信息,包括出入管理,报修管理,报修管理,物业费缴纳等,可以管理操作员。 出入管理界面,管理员在出入管理界面中可以对界面中显示,可以对招聘信息的招聘状态进行查看,可以添加新的招聘信息等。报修管理界面,管理员在报修管理界面中查看奖罚种类信息,奖罚描述信息,新增奖惩信息等。车位管理界面,管理员在车位管理界面中新增。公告管理界面,管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值