xml布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pullToRefreshListView" android:layout_width="match_parent" android:layout_height="match_parent"> </com.handmark.pulltorefresh.library.PullToRefreshListView> </LinearLayout>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; } }