package com.wuxiaolong.wewin.ui.tngounews; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.wuxiaolong.pullloadmorerecyclerview.PullLoadMoreRecyclerView; import com.wuxiaolong.wewin.model.TngouNewsModel; import com.wuxiaolong.wewin.retrofit.RetrofitCallback; import com.wuxiaolong.wewin.ui.BaseFragment; import com.wuxiaolong.wewin.utils.AppConstants; import com.wuxiaolong.wewin.utils.ImageLoader; import com.xiaomolongstudio.wewin.R; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import retrofit2.Call; public class TngouNewsFragment extends BaseFragment { DataAdapter dataAdapter; @BindView(R.id.pullLoadMoreRecyclerView) PullLoadMoreRecyclerView pullLoadMoreRecyclerView; private int page = 1; int rows = 20; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_tngou_news, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ButterKnife.bind(this, view); initView(); loadData(); } private void initView() { pullLoadMoreRecyclerView.setLinearLayout(); pullLoadMoreRecyclerView.setRefreshing(true); dataAdapter = new DataAdapter(); pullLoadMoreRecyclerView.setAdapter(dataAdapter); pullLoadMoreRecyclerView.setOnPullLoadMoreListener(new PullLoadMoreRecyclerView.PullLoadMoreListener() { @Override public void onRefresh() { page = 1; loadData(); } @Override public void onLoadMore() { page++; loadData(); } }); } private void loadData() { Call<TngouNewsModel> call = apiStores.loadTngouNews(page, rows); call.enqueue(new RetrofitCallback<TngouNewsModel>() { @Override public void onSuccess(TngouNewsModel model) { if (model.isStatus()) { if (page == 1) { dataAdapter.clear(); } dataAdapter.addAll(model.getTngou()); if (model.getTngou().size() < rows) { pullLoadMoreRecyclerView.setHasMore(false); } else { pullLoadMoreRecyclerView.setHasMore(true); } } } @Override public void onFailure(int code, String msg) { toastShow(msg); } @Override public void onThrowable(Throwable t) { toastShow(t.getMessage()); } @Override public void onFinish() { pullLoadMoreRecyclerView.setPullLoadMoreCompleted(); } }); addCalls(call); } public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> { private List<TngouNewsModel.TngouBean> dataList = new ArrayList<>(); public void addAll(List<TngouNewsModel.TngouBean> dataList) { this.dataList.addAll(dataList); notifyDataSetChanged(); } public void clear() { this.dataList.clear(); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.tngou_new_item, parent, false); return new ViewHolder(v); } @Override public void onBindViewHolder(ViewHolder holder, int position) { TngouNewsModel.TngouBean tngouEntity = dataList.get(position); holder.title.setText(tngouEntity.getTitle()); holder.fromname.setText(tngouEntity.getFromname()); holder.description.setText(tngouEntity.getDescription()); ImageLoader.load(mActivity, AppConstants.API_SERVER_IMAGE_URL + tngouEntity.getImg(), holder.imageView); } @Override public int getItemCount() { return dataList.size(); } public class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.imageView) ImageView imageView; @BindView(R.id.title) TextView title; @BindView(R.id.fromname) TextView fromname; @BindView(R.id.description) TextView description; public ViewHolder(final View itemView) { super(itemView); ButterKnife.bind(this, itemView); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TngouNewsModel.TngouBean tngouEntity = dataList.get(getLayoutPosition()); Intent intent = new Intent(mActivity, TngouNewsDetailActivity.class); intent.putExtra(AppConstants.ID, tngouEntity.getId()); mActivity.startActivity(intent); } }); } } } }