MainActivity类
package com.baway.hanyongguang; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.baway.hanyongguang.Bean.BaseHolder; import com.baway.hanyongguang.Bean.ContentInfo; import com.baway.hanyongguang.Bean.Holder; import com.baway.hanyongguang.Bean.Holder2; import com.baway.hanyongguang.Bean.ImgInfo; import com.baway.hanyongguang.Bean.Myimg; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import com.squareup.okhttp.Call; import com.squareup.okhttp.Callback; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import java.io.IOException; public class MainActivity extends AppCompatActivity { Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==1){ int currentItem = viepager.getCurrentItem(); currentItem++; viepager.setCurrentItem(currentItem); handler.sendEmptyMessageDelayed(1,2000); } } }; private RecyclerView recycle; private ViewPager viepager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getData(); initView(); getRecycyleData(); } private void getRecycyleData() { //创建okHttpClient对象 OkHttpClient mOkHttpClient = new OkHttpClient(); //创建一个Request final Request request = new Request.Builder() .url("http://i.dxy.cn/snsapi/home/feeds/list/all?" + "sid=4df0360f-2a20-4198-beb8-4dc5660c4f08&u=" + "zhetianyishou&s=10&mc=0000000049029dcaffffffff9" + "9d603a9&token=TGT-13165-buaw5fHpqLlefw9bSOB0oF41" + "fobaV4rMZmK-50&hardName=iToolsAVM_T0008098S&ac=4124c5" + "f1-2029-4fda-b06f-a87ac5ad8d11&bv=2013&vc=6.0.6&tid=c25e673" + "d-e82a-4e46-bd4e-c1e86d497126&vs=4.4.4&ref_tid=54720e1a-7eed-4993-9f51-3d760f3d0b2e") .build(); //new call Call call = mOkHttpClient.newCall(request); //请求加入调度 call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(final Response response) throws IOException { String RecycleData = response.body().string(); final Gson gson = new Gson(); final Myimg myimg = gson.fromJson(RecycleData, Myimg.class); MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { initData(gson, myimg); } }); } private void initData(final Gson gson, final Myimg myimg) { //设置RECYCLEView属性 recycle.setLayoutManager(new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false)); recycle.setAdapter(new RecyclerView.Adapter<BaseHolder>() { int type = -1; int type1 = 0; int type2 = 1; @Override public BaseHolder onCreateViewHolder(ViewGroup parent, int viewType) { BaseHolder holder = null; if (viewType == type1) { View view = View.inflate(MainActivity.this, R.layout.item, null); holder = new Holder(view); } else if (viewType == type2) { View view = View.inflate(MainActivity.this, R.layout.item2, null); holder = new Holder2(view); } return holder; } @Override public void onBindViewHolder(BaseHolder holder, int position) { //直接传条目 holder.getData(MainActivity.this, myimg.getItems().get(position)); } @Override public int getItemCount() { return myimg.getItems().size(); } @Override public int getItemViewType(int position) { String content = myimg.getItems().get(position).getContent(); ContentInfo contentInfo = gson.fromJson(content, ContentInfo.class); if (contentInfo.getUrl() == null) { type = type1; } else { type = type2; } return type; } }); } }); } private void initView() { recycle = (RecyclerView) findViewById(R.id.recycleView); viepager = (ViewPager) findViewById(R.id.viewpager); } private void getData() { //创建okHttpClient对象 OkHttpClient mOkHttpClient = new OkHttpClient(); //创建一个Request final Request request = new Request.Builder() .url("http://i.dxy.cn/snsapi/event/count/list/all") .build(); //new call Call call = mOkHttpClient.newCall(request); //请求加入调度 call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(final Response response) throws IOException { String data = response.body().string(); Log.i("~~~", data + ""); Gson gson = new Gson(); final ImgInfo imgInfo = gson.fromJson(data, ImgInfo.class); Log.i("~", imgInfo.getItems().get(0).getPath() + ""); MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { initviepager(imgInfo); } }); } private void initviepager(final ImgInfo imgInfo) { viepager.setAdapter(new PagerAdapter() { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView img = new ImageView(MainActivity.this); ImageLoader.getInstance().displayImage(imgInfo.getItems().get(position % 3).getPath(), img); container.addView(img); return img; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }); handler.sendEmptyMessageDelayed(1,2000); } }); } } Holder类package com.baway.hanyongguang.Bean; import android.content.Context; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.baway.hanyongguang.R; import com.nostra13.universalimageloader.core.ImageLoader; /** * Created by Administrator on 2016/12/19. */ public class Holder extends BaseHolder { public TextView tv1; public TextView tv2; public ImageView img1; public TextView tv3; public Holder(View itemView) { super(itemView); img1 = (ImageView) itemView.findViewById(R.id.img1); tv3 = (TextView) itemView.findViewById(R.id.tv3); tv1 = (TextView) itemView.findViewById(R.id.tv1); tv2 = (TextView) itemView.findViewById(R.id.tv2); } @Override public void getData(Context context, Object o) { Myimg.ItemsBean item = (Myimg.ItemsBean) o; ImageLoader.getInstance().displayImage("http://img.dxycdn.com/avatars/120/"+item.getInfoAvatar(),img1); tv3.setText(item.getCity()); tv1.setText(item.getSourceTitle()); tv2.setText(item.getContent()); } }package com.baway.hanyongguang.Bean; import android.content.Context; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.baway.hanyongguang.R; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; /** * Created by Administrator on 2016/12/19. */ public class Holder2 extends BaseHolder { public ImageView img; public TextView tv1; public TextView tv2; public ImageView img1; public TextView tv3; public Holder2(View itemView) { super(itemView); img1 = (ImageView) itemView.findViewById(R.id.img1); tv3 = (TextView) itemView.findViewById(R.id.tv3); img = (ImageView) itemView.findViewById(R.id.img); tv1 = (TextView) itemView.findViewById(R.id.tv1); tv2 = (TextView) itemView.findViewById(R.id.tv2); } @Override public void getData(Context context, Object o) { Myimg.ItemsBean item = (Myimg.ItemsBean) o; String content = item.getContent(); Gson gson = new Gson(); ContentInfo contentInfo = gson.fromJson(content, ContentInfo.class); ImageLoader.getInstance().displayImage("http://img.dxycdn.com/avatars/120/"+item.getInfoAvatar(),img1); tv3.setText(item.getCity()); ImageLoader.getInstance().displayImage("http://res.dxycdn.com/upload/"+contentInfo.getUrl(),img); tv1.setText(item.getSourceTitle()); tv2.setText(item.getContent()); } }BaseHolder类 抽取的基类package com.baway.hanyongguang.Bean; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; /** * Created by Administrator on 2016/12/21. */ public abstract class BaseHolder<T> extends RecyclerView.ViewHolder { public BaseHolder(View itemView) { super(itemView); } public abstract void getData(Context context,T t); }