//停车场数据导入 public void initParkingLot() { parkingLotList.clear();//先清空list内数据 mThread = new MyThread(); mThread.start(); mHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1://msg的what判断是哪个bundle的请求 //创建停车场实例 parkingLotList.add(new ParkingLot(msg.getData().getInt("ID"), msg.getData().getString("state"), msg.getData().getString("name"), msg.getData().getDouble("latitude"), msg.getData().getDouble("longitude"), msg.getData().getInt("sum"), msg.getData().getInt("yt"), msg.getData().getInt("kt"), msg.getData().getDouble("price"), msg.getData().getDouble("level"))); //测算出每个停车场距离目前的距离,动态更新ParkingLot的distance成员 LatLng curLatLng = new LatLng(curLatitude, curLongitude); LatLng desLatLng = new LatLng(parkingLotList.get(parkingLotList.size() - 1).getLatitude(), parkingLotList.get(parkingLotList.size() - 1).getLongitude()); //调用距离测算函数(修改整个List中刚加进来的对象的distance属性) parkingLotList.get(parkingLotList.size() - 1).distance = (int) AMapUtils.calculateLineDistance(curLatLng, desLatLng); //排序 Collections.sort(parkingLotList); //适配器的设置 ParkingLotAdapter adapter = new ParkingLotAdapter( ParkActivity.this, R.layout.parkinglot_item, parkingLotList); ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter); //测试,输出size System.out.println(parkingLotList.size()); break; default: break; } } }; }
这段代码是将数据库的停车场数据导入parkingLotList(List类型)中,然而是同伴写的代码,我也不太懂这两个线程啥关系,执行完这个函数以后,parkingLotList的size竟然是0!这是为什么!而且在这个函数中测试的时候size是对的,不知道为什么执行完函数以后size就变成0了!求懂的人解答!!T T!!!!