惯例:先上图后说话,谢谢各位伙伴的支持! 有你们是我的福分!
每日一言:在我的平凡世界里,我就是不平凡。
逻辑图
/**
* author: 贾旭飞(<a href="mailto:jiaxufei@danlu.com">jiaxufei@danlu.com</a>)<br>
* version: 1.0.0<br>
* since: 2017-09-07 00:06<br>
* <p>
* <p>
* 订单列表
* </p>
*/
public class NewOrderListActivity extends BaseActivity implements BaseQuickAdapter.RequestLoadMoreListener, SwipeRefreshLayout.OnRefreshListener {
private NewOrderListPresenter newOrderListPresenter;
private NewOrderListAdapter newOrderListAdapter;
private RecyclerView rvOrderList;
private SwipeRefreshLayout swipeLayout;
private View notDataView;//空界面
private View errorView;//错误界面
ImageView btnBack;
TextView tvTitle;
private List<String> orderStateList;
private String startTime = "";
private String endTime = "";
private int page = 1;
private int mCurrentCounter = 0;//当前
private int TOTAL_COUNTER = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_order_list);
initView();
initAdapter();
initData();
}
/**
* 初始化试图
*/
private void initView() {
swipeLayout = $(R.id.swipeLayout);
rvOrderList = $(R.id.rv_order_list);
swipeLayout.setOnRefreshListener(this);
swipeLayout.setColorSchemeColors(Color.rgb(47, 223, 189));
rvOrderList.setLayoutManager(new LinearLayoutManager(this));
notDataView = getLayoutInflater().inflate(R.layout.loadpage_empty, (ViewGroup) rvOrderList.getParent(), false);
errorView = getLayoutInflater().inflate(R.layout.error_view, (ViewGroup) rvOrderList.getParent(), false);
btnBack = $(R.id.btn_back);
tvTitle = $(R.id.tv_title);
tvTitle.setText("我的订单");
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
/**
* 初始化数据
*/
private void initData() {
orderStateList = new ArrayList<>();
orderStateList.add(PaymentOrder.ORDER_STATUS_WAIT_FOR_PAY);//待付款
orderStateList.add(PaymentOrder.ORDER_STATUS_WAIT_FOR_RECEIVE);//已发货
orderStateList.add(PaymentOrder.ORDER_STATUS_WAIT_FOR_SEND);//待发货
orderStateList.add(PaymentOrder.ORDER_STATUS_PAYING);//支付中
newOrderListPresenter = new NewOrderListPresenter(this);
newOrderListAdapter.setEmptyView(R.layout.loading_view, (ViewGroup) rvOrderList.getParent());
startLoadData();
}
/**
* 初始化适配器
*/
private void initAdapter() {
newOrderListAdapter = new NewOrderListAdapter();
rvOrderList.setAdapter(newOrderListAdapter);
newOrderListAdapter.setOnLoadMoreListener(this, rvOrderList);
newOrderListAdapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_LEFT);
}
/**
* 试图绑定数据
*
* @param orderList 订单列表
* @param totalNum 总数
*/
public void bindResponseToView(List<Order> orderList, int totalNum) {
Log.e("1111111", "size=" + orderList.size());
if (orderList.size() == 0) {
newOrderListAdapter.setEmptyView(notDataView);
} else {
TOTAL_COUNTER = totalNum;
mCurrentCounter = newOrderListAdapter.getData().size();
if (page==1) {
newOrderListAdapter.setNewData(orderList);
swipeLayout.setRefreshing(false);
} else {
newOrderListAdapter.addData(orderList);
newOrderListAdapter.loadMoreComplete();
}
}
}
@Override
public void onRefresh() {
newOrderListAdapter.setEnableLoadMore(false);
page = 1;
startLoadData();
}
@Override
public void onLoadMoreRequested() {
swipeLayout.setRefreshing(false);
if (newOrderListAdapter.getData().size() < 20) {
newOrderListAdapter.loadMoreEnd();
} else {
if (mCurrentCounter >= TOTAL_COUNTER) {
newOrderListAdapter.loadMoreEnd();
} else {
page++;
startLoadData();
}
rvOrderList.setEnabled(true);
}
}
/**
* 开始加载数据
*/
private void startLoadData() {
newOrderListPresenter.getPaymentOrderList(orderStateList, startTime, endTime, page);
}
}
框架引入
先在 build.gradle(Project:XXXX) 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
然后在 build.gradle(Module:app) 的 dependencies 添加:
dependencies {
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.22'
}
在此感谢, BRVAH是一个强大的RecyclerAdapter框架。