gpt4 book ai didi

android - 使用计时器更新列表 UI

转载 作者:行者123 更新时间:2023-11-29 16:16:35 25 4
gpt4 key购买 nike

我正在尝试使用 timer 更新 ListView。我已经实现了 android UI 计时器,但我的问题是如何将它用于 ListView,我需要在特定时间间隔后更新列表的每一行。处理程序如何更新列表的每一行(即假设 TextView 位于我将显示更新值的每一行内)?

public class ListAdapter extends BaseAdapter {

private List<String> messages;
private Context mContext;

public ListAdapter(Context context , List<String> messages){
this.messages = messages;
mContext = context;
}

@Override
public int getCount(){
return messages.size();
}

@Override
public Object getItem(int location){
return messages.get(location);
}

@Override
public long getItemId(int index){
return index;
}

@Override
public View getView(int index , View convertView, ViewGroup viewGroup){

TextView time = new TextView(mContext);

//udpate the time.setText() using timer
convertView = (View)time

return convertView;
}

最佳答案

创建一个扩展 Handler 类的 customHandler 类,并从定时器 run() 方法调用处理程序的 sendEmptyMessage()。

在 Handler 类中覆盖 handleMessage 并更新您的 ListView 值并调用 adapter.notifyDataSetChanged() 这将使用更新后的值刷新 ListView 。

这里是示例代码:

Timer timer = new Timer();
CustomTimerTask customTimerTask = new CustomTimerTask();
customTimerTask.run();
timer.scheduleAtFixedRate(customTimerTask, 1000 , 1000);

class CustomTimerTask extends TimerTask {

@Override
public void run() {
myHandler.sendEmptyMessage(0);
}
}

class CustomHandler extends Handler{


@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
/// Do your listview update thing
}

关于android - 使用计时器更新列表 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8968911/

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