PullToRefreshListView 實現上拉重新整理下拉載入
阿新 • • 發佈:2018-11-05
xml佈局程式碼:
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pullToRefreshListView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.handmark.pulltorefresh.library.PullToRefreshListView>
java程式碼:
public class Fragment22 extends Fragment {
private String path = "http://www.xieast.com/api/news/news.php?page="; private int count = 1; private ILoadingLayout layoutProxy; private ArrayList<Datas.Data> list; private PullToRefreshListView pullToRefreshListView; private PullListviewAdapter adapter; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment22, container, false); //找控制元件 pullToRefreshListView = (PullToRefreshListView) view.findViewById(R.id.pullToRefreshListView); pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH); layoutProxy = pullToRefreshListView.getLoadingLayoutProxy(true, false); //建立集合 list = new ArrayList<>(); //介面卡 adapter = new PullListviewAdapter(getActivity(), list); pullToRefreshListView.setAdapter(adapter); //設定監聽 pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { list.clear(); getData(1); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { count++; getData(count); } }); getData(1); return view; } private void getData(int count) { HttpConUtils httpConUtils = new HttpConUtils(); httpConUtils.getpath(path + count); httpConUtils.getstring(new HttpConUtils.GetDate() { @Override public void setstring(String s) { Gson gson = new Gson(); Datas datas = gson.fromJson(s, Datas.class); //Toast.makeText(getActivity(), datas.toString(), Toast.LENGTH_LONG).show(); list.addAll(datas.getData()); adapter.getList(list); pullToRefreshListView.onRefreshComplete(); //設定時間 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); layoutProxy.setLastUpdatedLabel("上次更新時間:" + simpleDateFormat.format(date)); } }); }
}
adapter介面卡:
public class PullListviewAdapter extends BaseAdapter {
private Context context; private ArrayList<Datas.Data> list; public PullListviewAdapter(Context context, ArrayList<Datas.Data> list) { this.context = context; this.list = list; } public void getList(ArrayList<Datas.Data> list) { this.list = list; notifyDataSetChanged(); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = View.inflate(context, R.layout.item_list2, null); holder = new ViewHolder(); holder.text = (TextView) convertView.findViewById(R.id.text); holder.text2 = (TextView) convertView.findViewById(R.id.text2); holder.image = (ImageView) convertView.findViewById(R.id.image); holder.image2 = (ImageView) convertView.findViewById(R.id.image2); holder.image3 = (ImageView) convertView.findViewById(R.id.image3); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(list.get(position).getTitle()); holder.text2.setText(list.get(position).getDate()); Picasso.with(context).load(list.get(position).getThumbnail_pic_s()).into(holder.image); Picasso.with(context).load(list.get(position).getThumbnail_pic_s02()).into(holder.image2); Picasso.with(context).load(list.get(position).getThumbnail_pic_s03()).into(holder.image3); return convertView; } class ViewHolder { TextView text,text2; ImageView image,image2,image3; }
}