MainActivity
package com.qy.pulltorefreshdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<JavaBean.DataBean> list;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 第一步:得到控件
final PullToRefreshListView mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
/**第二步:设置刷新方式
* 设置刷新的模式:常用的有三种
* PullToRefreshBase.Mode.BOTH //上下拉刷新都可以
* PullToRefreshBase.Mode.PULL_FROM_START //只允许下拉刷新
* PullToRefreshBase.Mode.PULL_FROM_END //只允许上拉刷新
*
*/
mPullRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
// 第三步:设置是否允许刷新的时候可以滑动()
mPullRefreshListView.setScrollingWhileRefreshingEnabled(true);
//第四步:数据
final String str = "http://www.xieast.com/api/news/news.php?page=1";
HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {
//解析
Gson gson = new Gson();
JavaBean bean = gson.fromJson(s, JavaBean.class);
list = bean.getData();
//第五步:设置适配器
adapter = new MyAdapter(MainActivity.this, list);
mPullRefreshListView.setAdapter(adapter);
}
});
//第六步:监听事件
mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
//下拉刷新
HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {
//解析
Gson gson = new Gson();
JavaBean bean = gson.fromJson(s, JavaBean.class);
list = bean.getData();
//设置适配器
adapter = new MyAdapter(MainActivity.this, list);
mPullRefreshListView.setAdapter(adapter);
mPullRefreshListView.onRefreshComplete();
}
});
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//上拉加载
HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
@Override
public void getData(String s) {
//解析
Gson gson = new Gson();
JavaBean bean = gson.fromJson(s, JavaBean.class);
List<JavaBean.DataBean> beans = bean.getData();
///把查询到的新数据添加到集合中
list.addAll(beans);
//刷新适配器
adapter.notifyDataSetChanged();
// 当列表被刷新时,调用onRefreshComplete
mPullRefreshListView.onRefreshComplete();
}
});
}
});
}
}