首先我就简写几个重要的部分写,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);
}
}
不要忘记加网络请求权限和依赖