经过检查发现原来是在添加到list队列中的hashmap在新增一个list的没有重新new一个,就直接添加进去了,当然会干掉以前的最后一条消息,然后又新增一条消息,所以最后的结果是最后的两条消息时重复的。
用代码举例子说明
// 清空回复栏
edt_answer.setText("");
// 隐藏软键盘
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edt_answer.getWindowToken(), 0);
//新建一个消息的hashmap
mapMessageInfo = new HashMap<String, Object>();
//新增的消息放到map中
mapMessageInfo.put("msg_date", new SimpleDateFormat(
"yyyy/MM/dd HH:mm:ss").format(new Date()));
mapMessageInfo.put("msg_info", anwser_MessageContent);
//添加到list队列里面
list_message_item.add(mapMessageInfo);
主要以前的问题就在于没有新建一个消息的haspmap直接用的是以前的,所以会导致覆盖掉以前的最后一个,同时新增加一个,导致了最后两条消息时重复的问题。