gpt4 book ai didi

java - 如何在不同线程的回调内通知 ArrayAdapter 中的DataSetChanged? - 安卓

转载 作者:行者123 更新时间:2023-12-02 03:48:12 25 4
gpt4 key购买 nike

我正在进行网络调用,然后一旦网络调用完成检索信息,我想调用notifyDataSetChanged。如果所有内容都在同一个线程上,则这是可行的,但是如果更新发生在另一个线程中,我将如何更新列表?

**

它会抛出这个错误:

android.view.ViewRootImpl$CalledFromWrongThreadException: 
Only the original thread that created a view hierarchy can touch its views.

最佳答案

您应该使用处理程序。像类的属性一样声明您的适配器(在任何方法之外)。并在您的 Activity 中使用此代码:

public Handler updateAdapter = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg)
{
//Update code
}
});

您的线程中的这个(调用处理程序):

updateCode.sendEmptyMessage(0);

关于java - 如何在不同线程的回调内通知 ArrayAdapter 中的DataSetChanged? - 安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134929/

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