public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
String baseUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";
int page;
private XListView xListView;
List<Goods.DataBean> list = new ArrayList<>(); //大集合
private MAdapter mAdapter;
private ImageLoader imageLoaderInstances;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xListView = (XListView) findViewById(R.id.xlv);
imageLoaderInstances = ImageLoader.getInstance();
mAdapter = new MAdapter();
xListView.setAdapter(mAdapter);
xListView.setPullLoadEnable(true); //允许上拉加载更多;
xListView.setXListViewListener(this); //设置(上下拉的)监听 设置(上下拉的)监听 设置(上下拉的)监听
getNetData(0);
}
/**
* 请求网络
*/
private void getNetData(int page) {
new MAsyncTask().execute(baseUrl+page);
}
/**
* 下拉刷新新数据;
*/
@Override
public void onRefresh() {
list.clear();
getNetData(0);
}
/**
* 上拉加载更多
*/
@Override
public void onLoadMore() {
//大集合中添加新数据
page++;
getNetData(page);
//更新适配器
}
private 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();
Goods goods = gson.fromJson(s, Goods.class);
List<Goods.DataBean> dataTemp = goods.getData();
list.addAll(dataTemp);
//更新适配器
mAdapter.notifyDataSetChanged();
uicomplete();//停止刷新
}
}
/**
* 上下拉刷新头或者刷新底部自动返回功能
*/
public void uicomplete(){
xListView.stopRefresh();
xListView.stopLoadMore();
Date date=new Date(System.currentTimeMillis());
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String refreshTime = sf.format(date);
xlv.setRefreshTime(refreshTime);//设置刷新时间
}
}
适配器
private class MAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View viewItem = View.inflate(MainActivity.this, R.layout.listview, null);
TextView textView = (TextView) viewItem.findViewById(R.id.textView);
ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView);
textView.setText(list.get(i).getNews_title());
imageLoaderInstances.displayImage(list.get(i).getPic_url(), imageView);
return viewItem;
}
}