-
Notifications
You must be signed in to change notification settings - Fork 16
Feature Mvp AutoLoader
D edited this page Aug 8, 2018
·
1 revision
1).LoaderModel
2).LoaderAdapter
3).LoaderActivity、LoaderFragment、LoaderPresenter、ILoaderViewpublic class LoaderModel extends BaseModel {
public String title;
...
}public class LoaderAdapter extends CommonAdapter<LoaderModel> {
public LoaderAdapter(Context context, List<LoaderModel> datas, int layoutId) {
super(context, datas, layoutId);
}
@Override
public void convert(int position, CommonHolder holder, LoaderModel item) {
holder.setText(R.id.tv_title, item.title);
...
}
}public interface ILoaderView extends IAbsView<LoaderModel> {
}public class LoaderPresenter extends AbsPresenter<LoaderModel> {
public LoaderPresenter(Context context) { super(context); }
public void getData(int page) {
Params params = new Params(API.MovieTop.rtpType);
params.addParam(API.MovieTop.start, String.valueOf(CommonLoader.PAGE_COUNT * (page - 1)));
params.addParam(API.MovieTop.count, String.valueOf(CommonLoader.PAGE_COUNT));
RxNet.getInstance().get(API.MovieTop.rtpType, params)
.request(new SimpleCallBack<LoaderInfo>() {
@Override
public void onSuccess(LoaderInfo response) {
if (getView() == null) {
return;
}
if (response == null || response.subjects == null) {
getView().setData(new ArrayList<LoaderModel>());
} else {
getView().setData(response.subjects);
}
}
@Override
public void onError(Throwable e) {
if (getView() == null) {
return;
}
getView().loadError();
}
});
}
}public class LoaderFragment extends AbsFragment<LoaderModel, LoaderPresenter> implements ILoaderView {
@Override
public LoaderPresenter getPresenter() {
return new LoaderPresenter(getActivity().getApplicationContext());
}
@Override
protected MvpView getMvpView() { return this; }
@Override
protected CommonAdapter<LoaderModel> getAdapter() {
return new LoaderAdapter(mContext, new ArrayList<LoaderModel>(), R.layout.adapter_loader);
}
@Override
protected void onLoad(int page) { mPresenter.getData(page); }
}public class LoaderActivity extends BaseFragmentActivity {
@Override
protected void init() {
tlTitle.setText(R.id.tv_title_title, "Loader");
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_content, new LoaderFragment()).commitAllowingStateLoss();
}
}