/** * 删除消息 */ private void deleteData() { for (int i = 0; i < mMsgList.size(); i++) { removeIdList(mMsgList); } mAdapter.notifyDataSetChanged(); this.keyList.clear(); rela_message_manager_bottom.getLayoutParams().height = 0; mAdapter.checkedList.clear(); } private void removeIdList(List<MessageVO> mMsgList) { for (int i = 0; i < mMsgList.size(); i++) { String id = mMsgList.get(i).id + ""; if (keyList.contains(id)) { mMsgList.remove(i); } } } // 这里是一个for循环里有一个删除元素的方法,为什么要用for循环呢,就是因为集合进行一个删除之后索引会改变!!! // 下方的方法只会删除一个元素,索引改变之后就执行不正确了。只能依靠上边的for循环去一个一个删除。