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);
@Overridepublic 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()+"");}

  

原文地址:https://www.cnblogs.com/wsq110/p/8185595.html

时间: 2024-11-02 09:19:51

Rxjava列表跳详情的相关文章

微信小程序点击列表跳转到对应详情页

点击列表跳转到对应详情页: 用自定义属性data-index保存当前点击列表的index,在点击跳转的方法中获取index并且拼接到要跳转的路径后面: 跳转到详情页,在onLoad钩子中通过参数options获取传过来的index,渲染对应的数据 原文地址:https://www.cnblogs.com/zxmonster/p/11583729.html

从列表到详情,没你想的那么简单

前言 本文先假设我们使用的是 vue + vuex + vue-router 的情况来展开讨论,React 全家桶的情况应该类似. 在日常的前端研发中,我们经常会遇到如题的场景:比如从商品列表进入商品详情,从订单列表进入订单详情.先看一个 demo~ 看起来是不是还算丝滑流畅,跟客户端效果较为接近~ 正文开始 很多同学应该会说,这不是很容易么,用 vue-router + transition 就好啦. <template> <transition name="custom-c

桂电在线_微信公众平台开发之-运用angularjs显示学校公告新闻列表和详情页面

折腾angularjs的感悟 几天折腾,总的来说看了很多博客,要么不是最新的技术文档,要么写得不够完整,因为别人是基于他们的理解写的技术博客代码不一定会贴完整,所以一旦你用的是最新的想要看完整的实例就只能去官网查阅文档,现在通过实现下面的两个功能才真正了解什么是前端的MVVM框架. 另外,总结下我理解中的MVVM框架:后台php是MVC框架,一直做法是php处理数据,然后把数据渲染到模板,然后后台返回html页面给浏览器, 现在前端mvvm(model-view-viewmodel)就是:mod

VUE通过id从新闻列表跳转到相对的新闻详情

新闻列表页面: 在这里我用a标签进行跳转,在vue里面可以这样写<router-link></router-link> <router-link :to="{path:'/news',query:{ id:item.NewsID }}" class="around"></router-link> 新闻详情页: 1)首先要获取id var newsID=this.$route.query.id; 2)拼接到url上面 t

Activity 切换动画(小米图库列表进入详情页,图片从固定位置放大进入,缩小退出)

直接上效果图 ok,来分析下如何实现的吧 分析原理 首先确定,这是两个不同的 Activity,从图片列表页跳入到图片详情页:先来看进入详情页时的动画,从列表中所在 item 的位置一直放大到详情页的显示位置,这里我可以先告诉大家,当我们点击了这个 item 的时候,就已经启动了详情页,然后在详情页做相应的动画效果.既然是在详情页做动画效果,就需要在列表页把相应的值传过去,列表页 item 在屏幕上的位置,item 的大小,当然还有图片的资源,然后在详情页计算动画执行的参数.分析了进入动画,那么

八爪鱼采集列表和详情信息

前两天突然接到领导一个邮件,让我用八爪鱼采集互联网数据.下面是邮件的原话: 我是接触可视化工具较多,但是你这个应该不复杂就有点主观了吧,没办法,让我对应就对应吧. 首先登陆官网:http://www.bazhuayu.com/,下载客户端安装,傻瓜式安装下一步下一步就完成了.我不需要免费账号,公司买了一个. 这是这个工具的界面,还是蛮简洁的,最主要的是任务栏和工具箱栏.任务栏首先可以建立任务组,在任务组下面建立具体的任务.下面我就具体的某一任务来一一说明. 我采集的是中国土地市场网的结果公示,网

「小程序JAVA实战」小程序视频列表到详情功能(58)

转自:https://idig8.com/2018/09/23/xiaochengxujavashizhanxiaochengxushipinliebiaodaoxiangqinggongneng57/ 目前直接展示的都是详情页面,现在需要完成通过详情可以直接跳转到首页,通过首页点击某个视频,可以跳转到某个视频详情中.源码https://github.com/limingios/wxProgram.git 中No.15 修改首页功能 通过block 索引的方式找到点击的对应视频列表中的其中一个传

scrapy案例:爬取翼蜂网络新闻列表和详情页面

# -*- coding: utf-8 -*- import scrapy from Demo.items import DemoItem class AbcSpider(scrapy.Spider): name = 'abcd' allowed_domains = ['www.cnyifeng.net'] # start_urls = ['http://abc.com/'] # 拼接url baseURL = "http://www.cnyifeng.net/news/1/{}.html&qu

管理系统列表和详情配置

简介: 通过配置json文件,直接生成列表和列表详情 配置文件是json格式 配置完成后可以生成预览 需要后端支持按一定的格式返回数据 config.json { "filterBar": { "isShow": true, "items": [{ "type": 1, "label": "", "field": "farmerName", &qu