gpt4 book ai didi

java - 如何延迟将元素添加到 Recyclerview 适配器?

转载 作者:行者123 更新时间:2023-11-29 19:09:10 26 4
gpt4 key购买 nike

我正在尝试创建一个聊天机器人。我需要模拟来自应用程序的交互式响应。响应不是来自嵌入在应用程序中的服务器。我正在使用 recycleview 来实现聊天 UI,我需要将每条消息延迟特定时间,以便用户感觉有人真的在和他说话。

   private void displayNewMessage(ArrayList<ChatMessage> messages) {
for (int i = 0; i < messages.size(); i++) {
chatMessages.add(messages.get(i));
}
adapter.notifyDataSetChanged();


}

前面的方法是用来推送一组消息给用户的,我怎么能延迟将每个元素添加到适配器。或者将它们全部推送到适配器并延迟在适配器中显示它们?

我尝试使用 Handler 但它没有用,它会延迟所有消息并将它们全部推送到一起。

最佳答案

这是一个比编程更符合逻辑的问题。

首先,为什么 延迟所有消息并将它们全部推送到一起 - 因为 for 循环,它会立即将它们添加到适配器。

另一种解决方案是在用户发送消息线程的其他地方使用处理程序。

假设我们有用户sendMessageButton,我们可以在那里做一些很好的逻辑。

我们将添加消息和等待时间,您可以将其设置为随机时间,例如:

 sendMessageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {

chatMessages.add(newMessage);
adapter.notifyDataSetChanged();

}
},random);

}
});

关于java - 如何延迟将元素添加到 Recyclerview 适配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46006262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com