1、添加依赖
2 、mainAcitvity
public class MainActivity extends AppCompatActivity {
String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";
private ArrayList<String> list = new ArrayList();
private PullToRefreshListView plv;
private int page = 0;
private ArrayAdapter<String> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
plv = (PullToRefreshListView) findViewById(R.id.plv);
plv.setMode(PullToRefreshBase.Mode.BOTH);//BOTH 设置支持上下拉
getNetData(0);
// 数据源 从网络请求数据
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
plv.setAdapter(mAdapter);
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
/**
* 下拉刷新
* @param pullToRefreshBase
*/
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
list.clear();
getNetData(0);
}
/**
* 上拉加载
* @param pullToRefreshBase
*/
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
// 请求新数据, 添加到大集合
page++;
getNetData(page);
}
});
}
/**
* 请求网络数据
* @param page
*/
private void getNetData( int page) {
new MAsyncTask().execute(baseUrl+page);
}
class MAsyncTask extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... strings) {
return NetWordUtils.getNetjson(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Product product = gson.fromJson(s, Product.class);
List<Product.DataBean> dataTemp = product.getData();
ArrayList<String> stringList = new ArrayList<>();//初始化一个空的字符串集合
for (int i = 0; i <dataTemp.size() ; i++) {
stringList.add(dataTemp.get(i).getTITLE());
}
list.addAll(stringList);
mAdapter.notifyDataSetChanged();
plv.onRefreshComplete(); // 让刷新头和刷新底部返回
}
}
}