今天修改代码的时候,遇见了一个由于全局变量的原始值未被清掉,引起的新旧数据混合在一起的BUG。代码片段如下:
ArrayList<AudioInfo> list = (ArrayList<AudioInfo>) mListView.getData() ;
IDs = new long[list.size()] ;
for (int i = 0; i < list.size(); i++) {
IDs[i] = list.get(i).getId() ;
// Log.i("TAG", "ids: " + IDs[i] ) ;
}
其中,由于开始的时候直接拿来用,没有这行:IDs = new long[list.size()] ;而且list.size()的长度小于IDs的值,所以导致IDs中部分值被更新,而未被更新的值却留在了IDs数组中。
所以导致了数据长度和内容错误引起的BUG。所以加上 IDs = new long[list.size()] ;