public abstract class BasePresenter { DataCall dataCall; public BasePresenter(DataCall dataCall) { this.dataCall = dataCall; } public void getData(Object...ag){ IRequest create = RetrifitUtils.getInstance().getCreate(IRequest.class); getModel(create,ag) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<GoodsBean>() { @Override public void accept(GoodsBean goodsBean) throws Exception { if (goodsBean.status.equals("0000")) { dataCall.sucess(goodsBean); } } }, new Consumer<Throwable>() { @Override public void accept(Throwable throwable) throws Exception { } }); } protected abstract Observable getModel(IRequest create, Object[] ag); }
public interface DataCall<T> { void sucess(T tt); void faild(); }
public class MyFirstAdapter extends RecyclerView.Adapter<MyFirstAdapter.VHH> { Context context; List<YijiBean> list; public MyFirstAdapter(Context context) { this.context = context; list = new ArrayList<>(); } @NonNull @Override public VHH onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View inflate = View.inflate(context, R.layout.layout_first, null); return new VHH(inflate); } @Override public void onBindViewHolder(@NonNull VHH vhh, final int i) { vhh.first.setText(list.get(i).name); vhh.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String id = list.get(i).id; EventBus.getDefault().postSticky(id); } }); } @Override public int getItemCount() { return list.size(); } public void addList(List<YijiBean> tt) { list.addAll(tt); } public void clear() { list.clear(); } public class VHH extends RecyclerView.ViewHolder { private final TextView first; public VHH(@NonNull View itemView) { super(itemView); first = itemView.findViewById(R.id.first_rv); } } }
private class SencondCall implements DataCall<List<ErJiBean>> { @Override public void sucess(List<ErJiBean> tt) { mySecondAdapter.clear(); mySecondAdapter.addList(tt); mySecondAdapter.notifyDataSetChanged(); } @Override public void faild() { } }