缓存解析Fragment点击跳到WebView

 
依赖
    compile 'com.android.support:recyclerview-v7:25.3.1'    	Recycler
    compile 'com.squareup.okhttp3:okhttp:3.8.1'	


 <android.support.v7.widget.RecyclerView
     android:id="@+id/rv"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView>
第一个Fragment页面
OkHttp解析
    private void initData() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    //缓存
                    Cache cache=new Cache(getContext().getCacheDir(),10*1024*1024);
                    OkHttpClient okHttpClient =new OkHttpClient.Builder().cache(cache).addNetworkInterceptor(new Interceptor() {
                        @Override
                        public Response intercept(Interceptor.Chain chain) throws IOException {
                            Response proceed = chain.proceed(chain.request());
                            if(TextUtils.isEmpty(proceed.cacheControl().toString())){
                                Response response = proceed.newBuilder().addHeader("Cache-Control", "max-age=" + 60 * 3).build();
                                return response;
                            }
                            return proceed;
                        }
                    }).build();

                    Request request=new Request.Builder().url(path).build();
                    Response response=okHttpClient.newCall(request).execute();
                    String string = response.body().string();
                    handler.obtainMessage(100,string).sendToTarget();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }



Handler

    private Handler handler=new Handler(){

        private RAdap rAdap;

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            String jsonstring = (String) msg.obj;
            Gson gson = new Gson();
            Bean bean = gson.fromJson(jsonstring, Bean.class);
            final List<Bean.ResultBean.DataBean> data = bean.getResult().getData();

            LinearLayoutManager manager=new LinearLayoutManager(getContext());
            rv.setLayoutManager(manager);

            rAdap = new RAdap(data,getContext());
            rv.setAdapter(rAdap);
//接口tiao'zh
            rAdap.setonlistener(new RAdap.onlistener() {

                private int i;

                @Override
                public void itemlistener(int position) {
                    i = position;
                    ((MainActivity) getActivity()).vp.setCurrentItem(1);
                    String url = data.get(position).getUrl();
                    listener.itemlistener(url);
                }
            });

        }
    };
//传数据    
public  interface  onlistener{
        void itemlistener(String url);
    }
    void setonlistener(onlistener listener){
        this.listener=listener;
    }

适配器

//短按

       holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.itemlistener(position);
            }
        });
//接口
 public interface onlistener{
        void itemlistener(int position);
    }
    public void setonlistener(onlistener listener){
        this.listener=listener;
    }

第二个fragment页面

    <WebView
        android:id="@+id/wv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></WebView>

//把this AIt+/

    private void initData() {
        ((MainActivity)getActivity()).xqFragment.setonlistener(this);


    }
    @Override
    public void itemlistener(final String url) {
        WebSettings settings = wv.getSettings();
        settings.setJavaScriptEnabled(true);
        wv.loadUrl(url);
        wv.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                wv.loadUrl(url);
                return super.shouldOverrideUrlLoading(view,request);
            }
        });

    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值