从不同的线程更新ListView

时间:2014-04-10 10:54:40

标签: java android multithreading user-interface

很抱歉,如果问题看起来很愚蠢......我还在学习Java。我只是想知道,是否可以从MainActivity类更新我的ListView来自不同的线程?我尝试在线程构造函数中传递我的活动上下文并获取ListView的实例,如下所示:

ListView lv = (ListView)parentActivity.findViewById(R.id.listViewInXml);

然后我在线程执行完成后根据我的要求更新了这个ListView。但问题是,每个线程在ListView上获得不同的实例,并且每个线程都将项添加到0索引(它假定在每个线程的开头新创建了ListView)。我希望每个线程完成其执行并在ListView MainActivity类的 MainActivity extends Activity { onCreate (bundle icicle) { getReferencetoListView(); int userId = 1; while (true) { // Execute a thread with userId // Each thread takes some time to complete execution userId++ } } } Thread (userId =1) Thread (userId =2) Thread (userId =3) . . . and so on.. 中添加一个结果。有什么建议吗?这是我正在尝试做的一个框架:

{{1}}

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

  

我只是想知道,是否可以从不同的线程更新MainActivity类中的ListView?

没有。您无法在几个选择案例之外的后台线程中修改UI(例如,ProgressBar)。这包含在the documentation