【问题标题】:Listview with multiple clocks具有多个时钟的列表视图
【发布时间】:2014-06-19 22:15:12
【问题描述】:

我正在尝试创建一个可以容纳多个时钟的列表视图,但每行中的时间总是在跳来跳去。

在我的 getView 中

        Date date=new Date();
        chagre.setTag(position);
        Handler mClockHandler = new Handler();
        mUpdateClockTask clockTask = new mUpdateClockTask(chagre,
                chagre.getTag().toString(), date);
        mClockHandler.post(clockTask);

并且可以运行

public class mUpdateClockTask implements Runnable {
    private TextView tv;
    Handler mClockHandler = new Handler();
    String tag;
    Date date;

    public mUpdateClockTask(TextView tv,
            String tag, Date date) {
        this.tv = tv;
        this.tag = tag;
        this.date = date;
    }

    public void run() {
        if (tv.getTag().toString().equals(tag)) {
            SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("h:mm:ss a");
            String time = TIME_FORMAT.format(date);                 
            tv.setText(time.trim());
            mClockHandler.postDelayed(this, 1000);
            notes.notifyDataSetChanged();
        }
    }

};

【问题讨论】:

    标签: java android listview timer runnable


    【解决方案1】:

    Android 不会同时创建列表中的所有行 - 它会在您滚动到它们时创建它们并在之后销毁它们,或者它通常会回收出现在列表中其他位置的行。您的 Runnable 引用了 TextView,该引用正用于列表中的随机行,并且可能会被意外销毁。

    【讨论】:

    • 那么最好的方法是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 2012-05-02
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多