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);
}
}