MainActivity
public class MainActivity extends AppCompatActivity implements MyView { @BindView(R.id.main_vp) ViewPager mMainVp; private MyPresenter mMyPresenter; private MyViewPagerAdapter mMyViewPagerAdapter; List<BannerBean.DataBean> mList; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0) { int currentItem = mMainVp.getCurrentItem(); currentItem++; mMainVp.setCurrentItem(currentItem); mHandler.sendEmptyMessageDelayed(0, 2000); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); mMyPresenter = new MyPresenter(this); mMyPresenter.onGetDatas(Apis.BANNER_URL_GET, BannerBean.class); //initData(); mHandler.sendEmptyMessageDelayed(0, 2000); } private void initData() { new OkHttpUtil().OkHttpGet(Apis.BANNER_URL_GET).setOkHttpListener(new OkHttpUtil.OkHttpListener() { @Override public void OkHttpSuccess(String data) { List<BannerBean.DataBean> beans = new Gson().fromJson(data, BannerBean.class).getData(); mList = beans; mMyViewPagerAdapter = new MyViewPagerAdapter(MainActivity.this, mList); mMainVp.setAdapter(mMyViewPagerAdapter); } @Override public void OkHttpError(String error) { } }); } @Override public void onMySuccess(Object data) { BannerBean bannerBean = (BannerBean) data; List<BannerBean.DataBean> dataBeans = bannerBean.getData(); mList = dataBeans; mMyViewPagerAdapter = new MyViewPagerAdapter(MainActivity.this, mList); mMainVp.setAdapter(mMyViewPagerAdapter); } @Override public void onMyFailed(String error) { } }
Mvp
适配器
public class MyViewPagerAdapter extends PagerAdapter { private Context mContext; private List<BannerBean.DataBean> mList; public MyViewPagerAdapter(Context context, List<BannerBean.DataBean> list) { mContext = context; mList = list; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object o) { return view == o; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = new ImageView(mContext); ImageLoader.getInstance().displayImage(mList.get(position % mList.size()).getIcon(), imageView); imageView.setScaleType(ImageView.ScaleType.FIT_XY); container.addView(imageView); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } }