PullToRefreshListView 实现上拉刷新下拉加载

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

}

猜你喜欢

转载自blog.csdn.net/qq_42805756/article/details/83381370