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