package com.bwie.xlistviewdemo1;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.bwie.adapters.MyBaseAdapter;
import com.bwie.beans.News;
import com.bwie.beans.SuperClass;
import com.google.gson.Gson;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
private XListView xListView;
private ArrayList<News> newslist;
private MyBaseAdapter myAdapter;
private final static String JSON_URL = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xListView = (XListView) findViewById(R.id.xlv);
xListView.setPullLoadEnable(true);//设置可以刷新和加载
xListView.setXListViewListener(this);
//刚进来,加载第一版数据
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
//线程加载数据
String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
newslist = superClass.getNewslist();//得到第一页数据
myAdapter = new MyBaseAdapter(newslist, MainActivity.this);
xListView.setAdapter(myAdapter);
}
}.execute();
}
/**
* 停止刷新或加载时
*/
public void onLoad(){
xListView.stopRefresh();
xListView.stopLoadMore();
xListView.setRefreshTime("刚刚");
}
/**
* 下拉会回调此方法,在次方法中写刷新的代码
*/
@Override
public void onRefresh() {
Toast.makeText(this,"刷新",Toast.LENGTH_SHORT).show();
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
//线程加载数据
String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
newslist = superClass.getNewslist();//得到第一页数据
myAdapter = new MyBaseAdapter(newslist, MainActivity.this);
xListView.setAdapter(myAdapter);
onLoad();
}
}.execute();
}
/**
* 上拉到listview的最后一条显示出来,然后会调用此方法,在此方法中加载下一页数据
*/
@Override
public void onLoadMore() {
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
//线程加载数据
String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
ArrayList<News> newData = superClass.getNewslist();//得到下一页数据(比如2,3,4.。。)
newslist.addAll(newData);//把新的一页的数据集合,加到总的数据集合
myAdapter.notifyDataSetChanged();//刷新适配器,展示全部数据
onLoad();
}
}.execute();
}
}
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.bwie.adapters.MyBaseAdapter;
import com.bwie.beans.News;
import com.bwie.beans.SuperClass;
import com.google.gson.Gson;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
private XListView xListView;
private ArrayList<News> newslist;
private MyBaseAdapter myAdapter;
private final static String JSON_URL = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xListView = (XListView) findViewById(R.id.xlv);
xListView.setPullLoadEnable(true);//设置可以刷新和加载
xListView.setXListViewListener(this);
//刚进来,加载第一版数据
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
//线程加载数据
String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
newslist = superClass.getNewslist();//得到第一页数据
myAdapter = new MyBaseAdapter(newslist, MainActivity.this);
xListView.setAdapter(myAdapter);
}
}.execute();
}
/**
* 停止刷新或加载时
*/
public void onLoad(){
xListView.stopRefresh();
xListView.stopLoadMore();
xListView.setRefreshTime("刚刚");
}
/**
* 下拉会回调此方法,在次方法中写刷新的代码
*/
@Override
public void onRefresh() {
Toast.makeText(this,"刷新",Toast.LENGTH_SHORT).show();
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
//线程加载数据
String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
newslist = superClass.getNewslist();//得到第一页数据
myAdapter = new MyBaseAdapter(newslist, MainActivity.this);
xListView.setAdapter(myAdapter);
onLoad();
}
}.execute();
}
/**
* 上拉到listview的最后一条显示出来,然后会调用此方法,在此方法中加载下一页数据
*/
@Override
public void onLoadMore() {
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
//线程加载数据
String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
ArrayList<News> newData = superClass.getNewslist();//得到下一页数据(比如2,3,4.。。)
newslist.addAll(newData);//把新的一页的数据集合,加到总的数据集合
myAdapter.notifyDataSetChanged();//刷新适配器,展示全部数据
onLoad();
}
}.execute();
}
}