WebView的数据展示

首先我就简写几个重要的部分写,Bean包和布局就不写了,下面是RecyclerView的适配器

import android.content.Context;
import android.net.Uri;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> {

    private Context context;
    private Bean bean;
    private OnItemClickListener mOnItemClickListener;

    public MyAdapter(Context context, Bean bean) {
        this.context = context;
        this.bean = bean;
    }
    //点击的接口
    public interface OnItemClickListener{
        void onItemClick(View view,int position);
    }
    public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){
        this.mOnItemClickListener = mOnItemClickListener;
    }

    @Override
    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //拿到我们自己定义的布局
        MyHolder holder = new MyHolder(LayoutInflater.from(context).inflate(R.layout.rv_item, parent, false));
        return holder;
    }

    @Override
    public void onBindViewHolder(final MyHolder holder, final int position) {
        //加载文字
        holder.tv.setText(bean.getResult().getList().get(position).getTitle());
        Uri uri=Uri.parse(bean.getResult().getList().get(position).getFirstImg());
        //图片构造者
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setAutoPlayAnimations(true)
                .build();
        holder.simpleDraweeView.setController(controller);
        //判断图片点击
        if(mOnItemClickListener != null){
            holder.simpleDraweeView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mOnItemClickListener.onItemClick(holder.simpleDraweeView,position);
                }
            });
        }

    }

    @Override
    public int getItemCount() {
        //三元运算符判断是否为空
        return bean == null?0:bean.getResult().getList().size();
    }


    class MyHolder extends RecyclerView.ViewHolder {

        SimpleDraweeView simpleDraweeView;
        TextView tv;
        public MyHolder(View itemView) {
            super(itemView);
            simpleDraweeView=itemView.findViewById(R.id.iv);
            tv = itemView.findViewById(R.id.tv);
        }
    }
}
主Activity中的代码,布局我就不写了,我用的OkHttp请求的数据,OkHttp我就省略了
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Toast;

import com.google.gson.Gson;

import java.io.IOException;

import okhttp3.Request;

public class MainActivity extends AppCompatActivity {

    private RecyclerView  rv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找控件
        rv = (RecyclerView) findViewById(R.id.rv);
        //请求数据
        OkHttp.getAsync("http://v.juhe.cn/weixin/query?key=88f7bbc507e3ecacfaeab2b47dd8936f", new OkHttp.DataCallBack() {
            @Override
            public void requestFailure(Request request, IOException e) {
                Toast.makeText(MainActivity.this,"请求失败",Toast.LENGTH_SHORT).show();
            }
            @Override
            public void requestSuccess(String result) throws Exception {
                //解析
                Gson gson = new Gson();
                final Bean bean = gson.fromJson(result, Bean.class);
                LinearLayoutManager ling = new LinearLayoutManager(MainActivity.this);
                rv.setLayoutManager(ling);
                //拿到适配器
                MyAdapter apter = new MyAdapter(MainActivity.this,bean);
                rv.setAdapter(apter);
                //点击跳转
                apter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {
                        Intent intent = new Intent(MainActivity.this,Zhan_Activity.class);
                        //直接把bean传过去
                       intent.putExtra("bean",bean.getResult().getList().get(position).getUrl());
                        startActivity(intent);
                    }
                });
            }
        });
    }
}
跳转之后的Activity,我用的是WebView展示,布局就是一个WebView控件

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class Zhan_Activity extends AppCompatActivity {

    private WebView wv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zhan);
        //找控件
        wv = (WebView) findViewById(R.id.wv);
        //接受
        Intent intent = getIntent();
        //拿到传的bean
        wv.loadUrl(intent.getStringExtra("bean"));
        //开始设置
        wv.setWebViewClient(new WebViewClient());
        WebSettings settings = wv.getSettings();
        // 设置支持javascript脚本
        settings.setJavaScriptEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);

    }
}
不要忘记加网络请求权限和依赖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值