ListView的空指针崩溃

ListView的空指针崩溃

一、问题情况:

某个类中调用getDataFromServer(),来获取数据newsadapter中根据news决定条目数量,然后就奔溃啦,提示空指针。

public void initData() {
        String cache = CacheUtil.getCache(mActivity, mTabDetailUrl);
        if (!TextUtils.isEmpty(cache)) {
            processData(cache);
        }

        getDataFromServer();
        //listView.setAdapter  为什么这里会奔溃?news空指针?明明上面请求网络数据了啊?
        //请求网络为异步GET请求,onSuccess还没执行时,就已经执行setAdapter了,导致空指针异常
        //SystemClock.sleep(1000);
        listView.setAdapter(new LvAdapter());
    }
private void getDataFromServer() {
        RequestParams params = new RequestParams(mTabDetailUrl);
        x.http().get(params, new Callback.CommonCallback<String>() {
            @Override
            public void onSuccess(String result) {
                //获取数据news--就是这东西导致Adapter中空指针
            }
    }
private class LvAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return news.size();			//这里空指针
        }
}

二、原因分析

一开始找了半天原因没发现到底为什么会出现这样的问题,明明有数据的啊?emmm,费了老大劲试到在xUtils3的网络请求中onSuccess中打个Log,发现奔溃时Log根本没打,才觉得为什么没走onSuccess方法啊?后来点进源码一看才发现是异步GET请求请求网络为异步GET请求,onSuccess还没执行时,就已经执行下面的setAdapter了,导致空指针异常.
好吧,原来是这个导致的,给自己提个醒吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值