public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private Gson gson=new Gson(); private MyAdapter adapter; XListView lv; List<Bean.DataBean> list; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int what = msg.what; if (what == 1) { String[] datas = (String[]) msg.obj; String json = datas[0]; String isadd = datas[1]; boolean isAdd = Boolean.parseBoolean(isadd); Bean bean = gson.fromJson(json, Bean.class); list = bean.getData(); if(!isAdd){ // list.clear(); adapter.updataData(list); } list.addAll(list); // adapter.updataData(list); adapter.addData(list); lv.stopLoadMore(); lv.stopRefresh(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (XListView) findViewById(R.id.lv); lv.setXListViewListener(MainActivity.this); lv.setPullRefreshEnable(true); lv.setPullLoadEnable(true); adapter=new MyAdapter(MainActivity.this); lv.setAdapter(adapter); getData(false); } private void getData(final boolean isAdd) { new Thread() { @Override public void run() { super.run(); String path = "http://shouyoutoutiao.app.17wanba.com/toutiao/get_list"; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); if (connection.getResponseCode() == 200) { InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String json = ""; String str = ""; StringBuilder builder = new StringBuilder(); while ((str = reader.readLine()) != null) { json = builder.append(str).toString(); } Message msg = Message.obtain(); msg.obj = new String[]{json, isAdd + ""}; msg.what = 1; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } @Override public void onRefresh() { getData(false); } @Override public void onLoadMore() { getData(true); }