import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.bawei.jane.mxlistview.view.XListView;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import adapter.MyAdapter;
import bean.Result;
public class MainActivity extends AppCompatActivity {
private XListView xlv;
private int pageIndex=1;//第一页的数据
private String urlpart="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";
private String url =urlpart + pageIndex;
private MyAdapter adapter;
private List<Result.DataBean>data = new ArrayList<>();
private int operType = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
xlv = findViewById(R.id.xlv);
//对xlistview进行设置
xlv.setPullLoadEnable(true);//上拉加载更多
xlv.setPullRefreshEnable(true);//下拉刷新
//设置接口
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {//刷新
//刷新时,重新请求第一页的数据
pageIndex = 1;
url = urlpart+pageIndex;
//重新赋值
operType = 1;
MyTask myTask = new MyTask();
myTask.execute(url);
}
@Override
public void onLoadMore() {//加载更多
//页数增加
pageIndex++;
url = urlpart+pageIndex;
//重新赋值
operType =2;
MyTask task = new MyTask();
task.execute(url);
}
});
//进行网络请求
MyTask myTask = new MyTask();
myTask.execute(url);
}
class MyTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
StringBuilder builder = new StringBuilder();
try {
URL url = new URL(strings[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setReadTimeout(5000);
if (connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String str;
while ((str=reader.readLine())!=null){
builder.append(str);
}
reader.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
@Override
protected void onPostExecute(String s) {
Gson gson =new Gson();
Result result = gson.fromJson(s, Result.class);
if (operType==1) {//代表刷新操作
data.clear();//清空原有的集合数据
}
//增加新的数据集合到原来的集合对象中
data.addAll(result.getData());
setAdapter();
//关闭头尾布局
if (operType==1){
xlv.stopRefresh();//关闭头布局
Date date = new Date(System.currentTimeMillis());//获取当前时间
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化时间
String refreShTime = sf.format(date);
xlv.setRefreshTime(refreShTime);//设置刷新时间
}else{
xlv.stopLoadMore();//关闭尾布局
}
}
}
public void setAdapter(){
if (adapter ==null){
adapter = new MyAdapter(data,MainActivity.this);
xlv.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
}
}