zoukankan      html  css  js  c++  java
  • Rxjava列表跳详情

     //详情
        public  static final  String XQURL="product/getProductDetail";
    
    @GET(Api.XQURL)
        Flowable<XqBean> xqbean(@Query("pid") String pid ,@Query("resource") String resource);
    
    
    model
    
    public class XqModel implements IXqModel {
    
        @Override
        public void getXq(String pid, final OnNetListener<XqBean> onNetListener) {
    
            ServerApi serverApi = RetrofitHelper.getServerApi();
            Flowable<XqBean> xqbean = serverApi.xqbean(pid,"android");
            xqbean.doOnSubscribe(new Consumer<Subscription>() {
                @Override
                public void accept(Subscription subscription) throws Exception {
    
                }
            })
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Consumer<XqBean>() {
                        @Override
                        public void accept(XqBean xqBean) throws Exception {
                            onNetListener.onSuccess(xqBean);
                        }
                    });
        }
    }
    

      

    p层
    public class IXqPresenter {
        private IXqModel iXqModel;
        private IXqActivity iXqActivity;
    
        public IXqPresenter(IXqActivity iXqActivity) {
            this.iXqActivity = iXqActivity;
            iXqModel = new XqModel();
        }
        public void getxq(String pid){
            iXqModel.getXq(pid, new OnNetListener<XqBean>() {
                @Override
                public void onSuccess(XqBean xqBean) {
                    iXqActivity.onxq(xqBean);
                }
    
                @Override
                public void onFailure(Exception e) {
    
                }
            });
        }
    }
    
    列表适配器
    public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    
        private Context context;
        private List<ShowBean.TuijianBean.ListBean> list;
        private LayoutInflater inflater;
        private OnItemClickListener onItemClickListener;
    
    
        //跳转到详情页的操作
        public interface OnItemClickListener{
            void onItem(String str);
        }
    
        public void setOnItemClickListener(OnItemClickListener onItemClickListener){
            this.onItemClickListener = onItemClickListener;
        }
    
        public MyAdapter(Context context, List<ShowBean.TuijianBean.ListBean> list) {
            this.context = context;
            this.list = list;
            inflater = LayoutInflater.from(context);
        }
    
    
    
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View inflate = inflater.inflate(R.layout.item1, parent, false);
            return new MyViewHolder(inflate);
        }
    
        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
            MyViewHolder myViewHolder = (MyViewHolder) holder;
            final ShowBean.TuijianBean.ListBean listBean = list.get(position);
            myViewHolder.sim.setImageURI(listBean.getImages());
            myViewHolder.tv1.setText(listBean.getTitle());
    
            //跳转到详情页
            myViewHolder.liner.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int pid = listBean.getPid();
                    onItemClickListener.onItem(pid+"");
            }
            });
    
        }
    
        @Override
        public int getItemCount() {
            if (list == null){
                return 0;
            }
            return list.size();
        }
    
        class MyViewHolder extends RecyclerView.ViewHolder {
    
            public SimpleDraweeView sim;
            public TextView tv1;
            private final LinearLayout liner;
    
            public MyViewHolder(View itemView) {
                super(itemView);
                liner = itemView.findViewById(R.id.liner);
                sim = itemView.findViewById(R.id.sim);
                tv1 = itemView.findViewById(R.id.tv1);
    
            }
        }
    
    }
    

      

    列表主类
    适配器点击事件
    adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
                @Override
                public void onItem(String str) {
                    Intent intent = new Intent(MainActivity.this, XqActivity.class);
                    intent.putExtra("pid",str);
                    startActivity(intent);
                }
            });
    
    详情主类
    接收传过来的id
     Intent intent = getIntent();
            String pid = intent.getStringExtra("pid");
            Toast.makeText(this, pid, Toast.LENGTH_SHORT).show();
            IXqPresenter iXqPresenter = new IXqPresenter(this);
            iXqPresenter.getxq(pid);


    @Override
    public void onxq(XqBean xqBean) {
    XqBean.DataBean data = xqBean.getData();
    String images = data.getImages();
    String[] split = images.split("\|");
    mXqSim.setImageURI(split[0]);
    mXqTv.setText(data.getTitle());
    mXqPrice.setText("$"+data.getPrice()+"");
    }

      

  • 相关阅读:
    C++复制构造函数,类型转换构造函数,析构函数,引用,指针常量和常量指针
    POJ1611(The Suspects)--简单并查集
    最小生成树-Kruskal算法
    POJ1861(Network)-Kruskal
    POJ1979(Red and Black)--FloodFill
    [转]全网最!详!细!tarjan算法讲解
    POJ1573(Robot Motion)--简单模拟+简单dfs
    最小生成树-Prim算法
    POJ3368(Frequent values)--线段树
    POJ3255(Roadblocks)--次短路径
  • 原文地址:https://www.cnblogs.com/wsq110/p/8185595.html
Copyright © 2011-2022 走看看