public class PullToRefreshActivity extends AppCompatActivity implements NetUtils_V2.NetCallback {
private PullToRefreshListView pullToRefreshListView;
private NetUtils_V2 instance;
private String url = "https://gank.io/api/data/福利/10/";
private int page = 1;
private List<GankBean.ResultsBean> resultsBeanList;
private PullToRefreshAdaper adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pull_to_refresh);
pullToRefreshListView = findViewById(R.id.pull_to_refresh);
// 设置PullToRrefresh支持上拉下拉
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
// 设置下拉下拉的监听
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page = 1;
loadData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
loadData();
}
});
/*pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
page = 1;
loadData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
page++;
loadData();
}
});*/
// 设置一个空的adpater , 去请求网络数据, 当网络数据回来后添加到数据集合中, 刷新adapter
resultsBeanList = new ArrayList<>();
adapter = new PullToRefreshAdaper(this, resultsBeanList);
pullToRefreshListView.setAdapter(adapter);
// 请求数据并在List中展示
instance = NetUtils_V2.getInstance();
instance.setNetCallback(this);
loadData();
// 添加轮播
View headView = LayoutInflater.from(this).inflate(R.layout.banner_layout, null, false);
banner = headView.findViewById(R.id.pull_banner);
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage((String) path, imageView);
}
});
List<String> images = new ArrayList<>();
images.add("https://ww1.sinaimg.cn/large/0065oQSqly1fu7xueh1gbj30hs0uwtgb.jpg");
images.add("https://ww1.sinaimg.cn/large/0065oQSqgy1fu39hosiwoj30j60qyq96.jpg");
images.add("https://ww1.sinaimg.cn/large/0065oQSqly1ftzsj15hgvj30sg15hkbw.jpg");
images.add("https://ww1.sinaimg.cn/large/0065oQSqgy1ftwcw4f4a5j30sg10j1g9.jpg");
banner.setImages(images);
banner.setBannerAnimation(Transformer.RotateDown);
banner.start();
// GridView refreshableView = pullToRefreshListView.getRefreshableView();
ListView refreshableView = pullToRefreshListView.getRefreshableView();
// 设置HeadView的布局参数
AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 600);
headView.setLayoutParams(params);
// 添加HeadView
refreshableView.addHeaderView(headView);
}
private Banner banner;
/**
* 加载数据
*/
private void loadData() {
instance.getDataFromServer(url + page);
}
@Override
public void onSuccess(String result) {
// 解析并处理数据
Gson gson = new Gson();
GankBean gankBean = gson.fromJson(result, GankBean.class);
// 设置数据并展示
if (page == 1) {
resultsBeanList.clear();
}
resultsBeanList.addAll(gankBean.getResults());
adapter.notifyDataSetChanged();
pullToRefreshListView.onRefreshComplete();
}
}