public class BusinessHallFragment extends Fragment implements BusinessHallView {
public View view;
public BusinessHallPresenter mPresenter;
public RefreshListView mLv;
public MyAdapter mAdapter;
public int page = 1;//請求的頁碼
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_businesshall, null, false);
initView();
return view;
}
@Override
public void fillData(List<BusinessBean.BusinessHallList> list) {
if (mAdapter == null) {
mAdapter = new MyAdapter(getActivity(), list, R.layout.item_businesshall);//創建適配器
mAdapter.setData(list);
mLv.setAdapter(mAdapter);
} else {
mAdapter.setData(list);//適配器中自帶更新數據方法
}
}
@Override
public void addData(List<BusinessBean.BusinessHallList> list) {
if (list != null && list.size() > 0) {
mAdapter.addData(list);
} else {
mLv.showNoMoreData();
}
}
public void initView() {
mPresenter = new BusinessHallPresenter(getActivity(), this);
mLv = (RefreshListView) view.findViewById(R.id.list);
mLv.setHeadAndFoot(true, true);
mLv.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onPullDownRefresh() {
page = 1;
mPresenter.getData(page);
mLv.onRefreshFinish();
}
@Override
public void onLoadMoring() {
page++;
mPresenter.getData(page);
mLv.onRefreshFinish();
}
});
mPresenter.getData(page);
}
//適配器
public class MyAdapter extends CommonAdapter<BusinessBean.BusinessHallList> {
public MyAdapter(Context context, List<BusinessBean.BusinessHallList> datas, int itemLayoutId) {
super(context, datas, itemLayoutId);
}
@Override
public void convert(int position, ViewHolder helper, BusinessBean.BusinessHallList item) {
helper.setText(R.id.tv_title, item.getBusiness_hall_name());
helper.setText(R.id.tv_content, item.getBusiness_hall_name());
helper.setText(R.id.tv_distance, item.getDistanceCount());
}
}
}
第二部分 Presenter
public class BusinessHallPresenter extends BasePresenter {
public BusinessHallView view;
public Context context;
public BusinessHallPresenter(Context context,BusinessHallView view) {
super(view);
this.view = view;
this.context = context;
}
public void getData(final int page){
RequestQueue requestQueue = Volley.newRequestQueue(context);
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, Constants.businessHall + "?currentPage="+page+"&pageSize=20&coordinate_x=4.9E-324&coordinate_y=4.9E-324&city_code=null", null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Gson gson = new Gson();
java.lang.reflect.Type type =new TypeToken<BusinessBean>(){}.getType();
BusinessBean bean = gson.fromJson(response.toString(),type);
if(page == 1){
view.fillData(bean.getBusinessHallList());
}else{
view.addData(bean.getBusinessHallList());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
view.showToastMessage(error.getMessage());
}
});
requestQueue.add(request);
}
}