XListView实现网络加载图片和下拉刷新实现网络加载图片和下拉刷新
主要为大家详细介绍了XListView实现网络加载图片和下拉刷新,具有一定的参考价值,感兴趣的小伙伴们可以
参考一下
本文实例为大家分享了XListView实现网络加载图片,和下拉刷新的功能,供大家参考,具体内容如下
MainActivity.java
public class MainActivity extends AppCompatActivity {
private XListView contents;
private int page = 0;
private MyBaseAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contents = findViewById(R.id.contents);
adapter = new MyBaseAdapter(getLayoutInflater());
contents.setAdapter(adapter);
//是否开启下拉刷新 上拉加载
//contents.setPullRefreshEnable(false);
contents.setPullLoadEnable(true);
contents.setXListViewListener(new XListView.IXListViewListener() {
@Override public void onRefresh() {
page = 0;
loadData(page);
//加载刷新数据
}
@Override public void onLoadMore() {
loadData(page);
}
});
//一进来就去加载第一页数据
loadData(page);
}
private String url =
"http://apis.juhe.cn/cook/query?key=3ec004200a6a2f4cf4774e480c006375&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=";
private void loadData(int page) {
String requestUrlWithPageNum = url + page;
//加载网络数据
new AsyncTask<String, Void, List<DataItem>>() {
@Override protected List<DataItem> doInBackground(String... strings) {
ResponseBean responseBean = null;
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if (responseCode == 200) {
String str = stream2String(urlConnection.getInputStream());
responseBean = new Gson().fromJson(str, ResponseBean.class);
} else {
//
}
return responseBean == null ? null : responseBean.getResult().getData();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;