我有一个列表视图,其中包含每个项目的时间。我显示左边的时间和左边的时间。 所以,假设我想在下午6点出示。现在是下午4点45分,我还会显示1小时7分钟。这将计算到我的BaseAdapter中。
现在我想每隔30秒刷新这些时间。 所以我尝试使用带有runnable的处理程序并调用notifyDataSetChanged(),但我想,数据需要更新,否则notifyDataSetChanged()什么都不做,对吧?
所以这里有一些代码:
在我的活动中运行:
private Runnable updateScreen = new Runnable() {
public void run() {
//update of the current time
rightNow = Calendar.getInstance();
timeNow = rightNow.get(Calendar.HOUR_OF_DAY) * 60 + rightNow.get(Calendar.MINUTE);
if(adapter != null)
adapter.notifyDataSetChanged();
handler.postDelayed(this, 30000);
}
};
以下是我在我的Activity中实现我的适配器的方法:
adapter = new TimesAdapter(context, times, timeNow);
times是String [],timeNow是int。
你有什么想法吗? 如果您需要更多代码,请告诉我。
答案 0 :(得分:0)
您无法从ui线程外部调用notifyDataSetChanged()。将调用移动到处理程序,列表应该刷新。