XlistView_異步

public class MainActivity extends AppCompatActivity {
    XListView lv;
    List<Bean.ResultBean> list;
    MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (XListView) findViewById(R.id.lv);

        lv.setPullRefreshEnable(true);
        lv.setPullLoadEnable(true);
        lv.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                isAdd(false);

            }

            @Override
            public void onLoadMore() {
                isAdd(true);

            }
        });
        MyTask task = new MyTask();
        task.execute("");

    }

    class MyTask extends AsyncTask<String, Integer, Bean> {

        @Override
        protected Bean doInBackground(String... params) {
            String json = getData();
            Gson gson = new Gson();
            Bean bean = gson.fromJson(json, Bean.class);
            return bean;
        }

        @Override
        protected void onPostExecute(Bean bean) {
            super.onPostExecute(bean);
            list = bean.getResult();
            adapter = new MyAdapter(MainActivity.this);
            lv.setAdapter(adapter);
            isAdd(true);
            lv.stopRefresh();
            lv.stopLoadMore();
        }
    }

    private void isAdd(boolean b) {
        if (b) {
            MyTask task = new MyTask();
            task.execute("");
            adapter.addData(list);
        } else {
            MyTask task = new MyTask();
            task.execute("");
            adapter.updateData(list);
        }
    }

    private String getData() {
        String path = "http://v.juhe.cn/WNXG/selectRepair?key=19cbdebe88c6b304186cb7be96137033&cityCode=suzhou";
        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 str = "";
                StringBuilder builder = new StringBuilder();
                while ((str = reader.readLine()) != null) {
                    builder.append(str);
                }

                return builder.toString();
            }


        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
發佈了27 篇原創文章 · 獲贊 7 · 訪問量 4945
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章