zoukankan      html  css  js  c++  java
  • Handler 接收Parcelable ArrayList时返回空的错误

     遇到一个问题,从handler 接收的Parcelable ArrayList返回空,调试发现这个arraylist生成的时候是有值的,传到handler就没值了

     赋值的代码

                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            ArrayList<Entry> entryList = parseRssXml(response);
                            Message msg = Message.obtain();
                            msg.getData().putParcelableArrayList("list",entryList);
                            mHandler.sendEmptyMessage(CONVERT_XML_TO_ENTRY);
                        }
                    }).start();

    这里debug发现 entrylist是有值的 size为15

        private Handler mHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what){
                    case CONVERT_XML_TO_ENTRY:
                        List<Entry> list = msg.getData().getParcelableArrayList("list");
                        if (list != null && list.size() != 0) {
                            if (adapter == null) {
                                adapter = new RssReaderAdapter();
                            }
                            adapter.setList(list);
                        }
    
                        setProgressBarIndeterminateVisibility(false);
                        break;
                    default:
                        break;
                }
            }
        };

    到这里就取不到值了

    最后发现是因为下面这个地方写的有问题

     Message msg = Message.obtain();
                            msg.getData().putParcelableArrayList("list",entryList);
                            mHandler.sendEmptyMessage(CONVERT_XML_TO_ENTRY);

    sendEmptyMessage,噢 卖糕的。。。。如此低级的错误,写代码还是得小心谨慎,细心

    改为sendMessage 一切正常了

  • 相关阅读:
    WebStorm使用Vue
    hive的简单操作
    hbase的简单操作
    CentOS 7 配置hadoop(五) 配置sqoop(伪分布)
    CentOS7配置hadoop集群
    CentOS 7 配置hadoop(四) 配置hive(伪分布)
    CentOS 7 配置hadoop(三) 配置hbase(伪分布)
    五种变量创建的方法
    GO练习题
    第一次作业总结
  • 原文地址:https://www.cnblogs.com/krislight1105/p/5339158.html
Copyright © 2011-2022 走看看