gpt4 book ai didi

android - 从线程内部调用 setListAdapter()

转载 作者:搜寻专家 更新时间:2023-11-01 08:17:11 25 4
gpt4 key购买 nike

我的 ListActivity 有问题,我使用一个线程来显示 ProgressDialog,其中获取所有已安装应用程序的列表。我把它变成一个列表适配器,然后我想设置 Activity 的列表适配器,但我不能从线程中做到这一点。

我收到以下错误:ERROR/AndroidRuntime(14429): android.view.ViewRoot$CalledFromWrongThreadException: 只有创建 View 层次结构的原始线程才能触及它的 View 。

progressDialog = new ProgressDialog(this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Loading...");
progressDialog.show();
new Thread() {
public void run() {
showList(); // the method where i get all the apps and have the setListAdapter(); method
progressDialog.dismiss();
}
}.start();

如何获取它以便我可以在我的线程中使用 setListAdapter

最佳答案

我解决了这个问题,通过使用 Handler,我设法从 Thread 中获取 setListAdapter 并仍在等待 Thread 执行该方法。

final Handler h = new Handler(){
public void handleMessage(Message msg) {
setListAdapter(appsAdapter);
}
};

new Thread() {
public void run() {
showList();
progressDialog.dismiss();
h.sendEmptyMessage(0);
}
}.start();

关于android - 从线程内部调用 setListAdapter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047999/

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