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);
}
}