线程异步

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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值