MyAdapter
public class MyRecycleViewAdapter extends RecyclerView.Adapter {
private List<Bean.T1348647909107Bean> list;
private Context context;
public MyRecycleViewAdapter(List<Bean.T1348647909107Bean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
RecyclerView.ViewHolder holder=null;
if (viewType == 1) {
View view = LayoutInflater.from(context).inflate(R.layout.item, null);
holder = new ViewHolder(view);
} else if (viewType == 2) {
View view = LayoutInflater.from(context).inflate(R.layout.item1, null);
holder = new ViewHolder1(view);
} else {
View view = LayoutInflater.from(context).inflate(R.layout.item2, null);
holder = new ViewHolder2(view);
}
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ViewHolder) {
((ViewHolder) holder).text.setText(list.get(position).getDigest());
Glide.with(context).load(list.get(position).getTopic_background()).into(((ViewHolder) holder).img);
}else if (holder instanceof ViewHolder1){
((ViewHolder1) holder).text.setText(list.get(position).getDigest());
Glide.with(context).load(list.get(position).getTopic_background()).into(((ViewHolder1) holder).imgg);
Glide.with(context).load(list.get(position).getImgsrc()).into(((ViewHolder1) holder).imgg2);
}else if (holder instanceof ViewHolder2){
Glide.with(context).load(list.get(position).getTopic_background()).into(((ViewHolder2) holder).img0);
Glide.with(context).load(list.get(position).getImgsrc()).into(((ViewHolder2) holder).img1);
Glide.with(context).load(list.get(position).getImgType()).into(((ViewHolder2) holder).img2);
}
}
@Override
public int getItemViewType(int position) {
if (list.get(position).getTopic_background()!=null&&list.get(position).getImgsrc()!=null){
return 2;
} else if (list.get(position).getImgsrc()!=null){
return 1;
}else {
return 3;
}
}
@Override
public int getItemCount() {
return list.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public View rootView;
public TextView text;
public ImageView img;
public ViewHolder(View rootView) {
super(rootView);
this.rootView = rootView;
this.text = (TextView) rootView.findViewById(R.id.text);
this.img = (ImageView) rootView.findViewById(R.id.img);
}
}
public static class ViewHolder1 extends RecyclerView.ViewHolder{
public View rootView;
public TextView text;
public ImageView imgg;
public ImageView imgg2;
public ViewHolder1(View rootView) {
super(rootView);
this.rootView = rootView;
this.text = (TextView) rootView.findViewById(R.id.text);
this.imgg = (ImageView) rootView.findViewById(R.id.imgg);
this.imgg2 = (ImageView) rootView.findViewById(R.id.imgg2);
}
}
public static class ViewHolder2 extends RecyclerView.ViewHolder{
public View rootView;
public ImageView img0;
public ImageView img1;
public ImageView img2;
public ViewHolder2(View rootView) {
super(rootView);
this.rootView = rootView;
this.img0 = (ImageView) rootView.findViewById(R.id.img0);
this.img1 = (ImageView) rootView.findViewById(R.id.img1);
this.img2 = (ImageView) rootView.findViewById(R.id.img2);
}
}
}
MainActivity
- 解析(retrofit+Rxjava)
retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.baseUrl("http://c.m.163.com/")
.build();
retrofit.create(ApiService.class)
.getSend()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Bean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Bean bean) {
beans = bean.getT1348647909107();
viewAdapter
= new MyRecycleViewAdapter(beans, MainActivity.this);
recycle.setAdapter(viewAdapter);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
ApiService(接口)
@GET("nc/article/headline/T1348647909107/0-20.html")
Observable<Bean> getSend();