【发布时间】:2018-01-09 15:10:50
【问题描述】:
我有一个带有自定义适配器的 ListView。我想更新 ListView 的数据。为此,我在适配器中编写了这个函数:
public void addData(Offer newOffer){
this.offerList.clear();
this.offerList.add(newOffer);
this.notifyDataSetChanged();
}
我现在的问题是,当我想在 UI 线程之外使用以下函数调用此函数时,它不位于 OffersActivity 内部,它不起作用:
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
final String message = new String(body, "UTF-8");
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
OffersActivity.offerAdapter.addData(new Offer("test", message));
}
});
}
适配器是 OffersActivity 中的一个公共静态变量。有人知道为什么这不起作用吗?
布鲁诺
【问题讨论】:
标签: java android listview runnable ui-thread