ShowContarct:
public interface ContarctInterface {
//model
public interface ShowModel{
public void getShow(String show,CallBack callBack);
public void getLeft(String left,CallBack callBack);
public void getMiddle(String middle,CallBack callBack);
public void getRight(String right,CallBack callBack);
public interface CallBack{
void onSuccess(String data);
void onError();
}
}
//view
public interface ShowView{
public void getShow(String data);
public void getLeft(String data);
public void getMiddle(String data);
public void getRight(String data);
}
//presenter
public interface ShowPresenter{
//第一个页面展示
public void getShow(String show);
public void attach(Fragmentone fragmentone);
//第二个页面展示
public void getLeft(String left);
public void getMiddle(String middle);
public void getRight(String right);
public void detch();
public void attch(Fragmenttwo fragmenttwo);
}
}
ShowModel:
public class Model implements ContarctInterface.ShowModel{
@Override
public void getShow(String show, final CallBack callBack) {
Volley.getInstance().getVolley(show, new Volley.CallBack() {
@Override
public void onSuccess(String data) {
callBack.onSuccess(data);
}
@Override
public void onErroe() {
}
});
}
@Override
public void getLeft(String left, final CallBack callBack) {
Volley.getInstance().getVolley(left,new Volley.CallBack(){
@Override
public void onSuccess(String data) {
callBack.onSuccess(data);
}
@Override
public void onErroe() {
}
});
}
@Override
public void getMiddle(String middle, final CallBack callBack) {
Volley.getInstance().getVolley(middle, new Volley.CallBack() {
@Override
public void onSuccess(String data) {
callBack.onSuccess(data);
}
@Override
public void onErroe() {
}
});
}
@Override
public void getRight(String right, final CallBack callBack) {
Volley.getInstance().getVolley(right,new Volley.CallBack(){
@Override
public void onSuccess(String data) {
callBack.onSuccess(data);
}
@Override
public void onErroe() {
}
});
}
}
ShowPresenter:
public class Presenter implements ContarctInterface.ShowPresenter {
public Model model;
public ContarctInterface.ShowView showView;
@Override
public void getShow(String show) {
model.getLeft(show, new ContarctInterface.ShowModel.CallBack() {
@Override
public void onSuccess(String data) {
showView.getShow(data);
}
@Override
public void onError() {
}
});
}
@Override
public void attach(Fragmentone fragmentone) {
model=new Model();
this.showView= (ContarctInterface.ShowView) fragmentone;
}
@Override
public void getLeft(String left) {
model.getLeft(left, new ContarctInterface.ShowModel.CallBack() {
@Override
public void onSuccess(String data) {
showView.getLeft(data);
}
@Override
public void onError() {
}
});
}
@Override
public void getMiddle(String middle) {
model.getMiddle(middle, new ContarctInterface.ShowModel.CallBack() {
@Override
public void onSuccess(String data) {
showView.getMiddle(data);
}
@Override
public void onError() {
}
});
}
@Override
public void getRight(String right) {
model.getRight(right, new ContarctInterface.ShowModel.CallBack() {
@Override
public void onSuccess(String data) {
showView.getRight(data);
}
@Override
public void onError() {
}
});
}
@Override
public void detch() {
if (model != null) {
model=null;
}
if (showView != null) {
showView=null;
}
System.gc();
}
@Override
public void attch(Fragmenttwo fragmentwo) {
model=new Model();
this.showView= (ContarctInterface.ShowView) fragmentwo;
}
}
上下拉刷新:
public class Fragmentone extends Fragment implements ContarctInterface.ShowView {
public ShowAdapter showAdapter;
public XRecyclerView xRecyclerView;
public Presenter presenter;
public List<Person> mlist=new ArrayList<>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmentone, container, false);
xRecyclerView=view.findViewById(R.id.xrecyclerview);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
xRecyclerView.setLoadingMoreEnabled(true);
xRecyclerView.setPullRefreshEnabled(true);
presenter = new Presenter();
presenter.attach(this);
presenter.getShow(Api.show);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
xRecyclerView.setLayoutManager(linearLayoutManager);
}
@Override
public void getShow(String data) {
Gson gson = new Gson();
final Person person = gson.fromJson(data, Person.class);
showAdapter = new ShowAdapter(person, getActivity());
xRecyclerView.setAdapter(showAdapter);
xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
mlist.clear();
}
int page;
@Override
public void onLoadMore() {
page++;
}
});
xRecyclerView.loadMoreComplete();
xRecyclerView.refreshComplete();
mlist.clear();
showAdapter.notifyDataSetChanged();
}
@Override
public void getLeft(String data) {
}
@Override
public void getMiddle(String data) {
}
@Override
public void getRight(String data) {
}
}
商品二级联动:
public class Fragmenttwo extends Fragment implements ContarctInterface.ShowView {
public RecyclerView left_recycler, middle_recycler, right_recycler;
public Presenter presenter;
public LeftAdapter leftAdapter;
public RightAdapter rightAdapter;
public MiddleAdapter middleAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmenttwo, container, false);
left_recycler = view.findViewById(R.id.left_recycle);
middle_recycler = view.findViewById(R.id.middle_recycle);
right_recycler = view.findViewById(R.id.right_recycle);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
presenter = new Presenter();
presenter.attch(this);
presenter.getLeft(Api.left);
presenter.getMiddle(Api.middle + "?firstCategoryId=1001002");
presenter.getRight(Api.right + "?categoryId=" + 1001004002 + "&page=" + 1 + "&count=" + 10);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
left_recycler.setLayoutManager(linearLayoutManager);
LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(getContext());
linearLayoutManager1.setOrientation(LinearLayoutManager.VERTICAL);
middle_recycler.setLayoutManager(linearLayoutManager1);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 2);
right_recycler.setLayoutManager(gridLayoutManager);
}
@Override
public void getShow(String data) {
}
@Override
public void getLeft(String data) {
Gson gson = new Gson();
final Left left = gson.fromJson(data, Left.class);
leftAdapter = new LeftAdapter(left, getActivity());
left_recycler.setAdapter(leftAdapter);
leftAdapter.leftclick(new LeftAdapter.LeftClick() {
@Override
public void leftonclick(int position) {
String left_id = left.getResult().get(position).getId();
presenter.getMiddle(Api.middle + "?firstCategoryId=" + left_id);
}
});
}
@Override
public void getMiddle(String data) {
Gson gson = new Gson();
final Middle middle = gson.fromJson(data, Middle.class);
middleAdapter = new MiddleAdapter(middle, getActivity());
middle_recycler.setAdapter(middleAdapter);
middleAdapter.middleclick(new MiddleAdapter.MiddleClick() {
@Override
public void middleonclick(int position) {
String middle_id = middle.getResult().get(position).getId();
presenter.getRight(Api.right + "?categoryId=" + middle_id + "&page=" + 1 + "&count=" + 10);
}
});
}
@Override
public void getRight(String data) {
Gson gson = new Gson();
Right right = gson.fromJson(data, Right.class);
rightAdapter = new RightAdapter(right, getActivity());
right_recycler.setAdapter(rightAdapter);
}
}