if (model->GetPopupViewState())
{
+ // 使用RefreshMessageList来刷新列表,它会先清空数据再添加,避免重复
const MessageListItem *itemInfo = model->GetMessageListItems();
- for (int i = 0; i < model->GetMessageCount(); i++)
- {
- view_->AddMessageToList(itemInfo[i]);
- }
+ view_->RefreshMessageList(itemInfo);
}
RootView::GetInstance()->SetOnKeyActListener(this);
UIList *MessageView::GetList() { return MessageList; }
- void MessageView::RefreshMessageList(const MessageListItem *itemInfo) {
- for (uint8_t i = 0; i < MessageModel::GetInstance().GetMessageCount();
- i++) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
- "MessageView::RefreshMessageList itemInfo[i].itemName:%d", i);
- AddMessageToList(itemInfo[i]);
- }
- MessageList->SetAdapter(p_MessageListAdapter);
- MessageList->RefreshList();
- }
+void MessageView::RefreshMessageList(const MessageListItem *itemInfo) {
+ // 先清空列表数据,避免重复添加
+ if (p_MessageListAdapter != nullptr) {
+ p_MessageListAdapter->ClearListItem();
+ }
+ for (uint8_t i = 0; i < MessageModel::GetInstance().GetMessageCount();
+ i++) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+ "MessageView::RefreshMessageList itemInfo[i].itemName:%d", i);
+ AddMessageToList(itemInfo[i]);
+ }
+ MessageList->SetAdapter(p_MessageListAdapter);
+ MessageList->RefreshList();
+}
} // namespace OHOS
\ No newline at end of file