线程异步

package com.bwei.www.week0205;

import android.os.AsyncTask;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.bwie.xlistview.XListView;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private XListView listv;
    private List<News.DataBeanX.DataBean> list;
    private MyAdapter adapter;
    private int currentpage = 1;
    private String url = "http://365jia.cn/news/api3/365jia/news/headline?page=";
    private Handler handler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listv = findViewById(R.id.listv);

        list = new ArrayList<>();
        adapter = new MyAdapter(this,list);
        listv.setAdapter(adapter);

        listv.setPullRefreshEnable(true);
        listv.setPullLoadEnable(true);

        getData(1,false);
        listv.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                currentpage = 1;
                getData(currentpage,false);
            }

            @Override
            public void onLoadMore() {
                currentpage++;
                getData(currentpage,true);
            }
        });
    }
    private void getData(final int currentpage, final boolean b) {
        new AsyncTask<String,Integer,String>(){
            @Override
            protected String doInBackground(String... strings) {
                String result = HttpUtils.getFromStringHttp(strings[0]);

                return result;
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                Gson gson = new Gson();
                News news = gson.fromJson(s,News.class);
                if(!b){
                    list.clear();
                }if(news.getData().getData() == null){
                    return;
                }
                list.addAll(news.getData().getData());
                adapter.notifyDataSetChanged();
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (b){
                            listv.stopLoadMore();
                        }else {
                            listv.stopRefresh();
                            listv.setRefreshTime("刚刚");
                        }
                    }
                },2000);

            }
        }.execute(url+currentpage);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42575367/article/details/82562317
今日推荐