//添加依赖并且初始化,添加网络权限
//主界面
public class PullToRefreshListActivity extends AppCompatActivity { private PullToRefreshListView pull_refresh_list; private ListView actualListView; private Gson gson= new Gson(); private ArrayAdapter<String> mAdapter; private ListviewAdapter listviewAdapter; private List<ListInfo.DataBean> list = new ArrayList<>(); private int page = 1; private boolean isRefresh = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pull_to_refresh_list); ActionBar supportActionBar = getSupportActionBar(); supportActionBar.setTitle("菜单一"); supportActionBar.setSubtitle("好菜好吃好美味!"); initView(); } private void initView() { pull_refresh_list = (PullToRefreshListView) findViewById(R.id.pull_refresh_list); actualListView = pull_refresh_list.getRefreshableView(); pull_refresh_list.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL); // Update the LastUpdatedLabel refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label); isRefresh = true; page = 1; show(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL); // Update the LastUpdatedLabel refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label); isRefresh =false; page++; show(); } }); } private void show() { x.http().get(new RequestParams() { { setUri("http://www.qubaobei.com/ios/cf/dish_list.php"); addParameter("stage_id", "1"); addParameter("limit", "10"); addParameter("page", page); } }, new Callback.CacheCallback<String>() { @Override public boolean onCache(String result) { return false; } @Override public void onSuccess(String result) { DemonstrateUtil.showToastResult(PullToRefreshListActivity.this, "刷新成功!"); DemonstrateUtil.showLogResult("onSuccess"); page++; ListInfo listInfo = gson.fromJson(result, ListInfo.class); List<ListInfo.DataBean> data = listInfo.getData(); if (isRefresh){ if (list.size() != 0) { list.clear(); } list.addAll(data); }else{ list.addAll(data); } if (null == listviewAdapter) { listviewAdapter = new ListviewAdapter(list, PullToRefreshListActivity.this); actualListView.setAdapter(listviewAdapter); } else { listviewAdapter.notifyDataSetChanged(); } pull_refresh_list.onRefreshComplete(); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } }
//适配器添加了动画和圆角的
public class ListviewAdapter extends BaseAdapter{ private List<ListInfo.DataBean> mData; private Context mContext; public ListviewAdapter(List<ListInfo.DataBean> mData, Context mContext) { this.mData = mData; this.mContext = mContext; } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int i) { return mData.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder; if (view == null) { view = View.inflate(mContext, R.layout.item_food, null); viewHolder = new ViewHolder(view); view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.titleTv.setText(mData.get(i).getTitle()); viewHolder.foodStrTv.setText(mData.get(i).getFood_str()); viewHolder.numTv.setText(mData.get(i).getNum()+""); viewHolder.collectNumTv.setText(mData.get(i).getId()); Uri uri = Uri.parse(mData.get(i).getPic()); viewHolder.mainSdv.setImageURI(uri); return view; } static class ViewHolder { protected SimpleDraweeView mainSdv; protected TextView titleTv; protected TextView foodStrTv; protected TextView numTv; protected TextView collectNumTv; ViewHolder(View rootView) { initView(rootView); } private void initView(View rootView) { mainSdv = (SimpleDraweeView) rootView.findViewById(R.id.main_sdv); titleTv = (TextView) rootView.findViewById(R.id.title_tv); foodStrTv = (TextView) rootView.findViewById(R.id.food_str_tv); numTv = (TextView) rootView.findViewById(R.id.num_tv); collectNumTv = (TextView) rootView.findViewById(R.id.collect_num_tv); } } }//Gsonformat快捷键创建实体类
ListInfo