ListView上的计时器

时间:2014-01-28 09:14:09

标签: android listview timer

我正在开发健身应用程序,当用户选择他们想要包含在锻炼中的动作时,动作选择用于填充ListView。当用户单击按钮开始锻炼时,计时器会出现在列表下方但仍位于同一视图中。我希望用户能够在同一视图上看到锻炼列表和计时器。我想知道是否有任何方法可以使计时器更具美感吸引力,同时保持它位于ListView上。就像一个警告,我做了一个快速“绑定”计时器,因为我第二天提出我的应用程序,这是我需要添加的最后一件事。以下是我用于计时器的方法:

    public Runnable updateTimerThread = new Runnable() {
    public void run() {

        timeInMilliseconds = SystemClock.uptimeMillis() - startTime;
        updatedTime = timeSwapBuff + timeInMilliseconds;

        int secs = (int) (updatedTime / 1000);
        int mins = secs / 60;
        secs = secs % 60;

        int milliseconds = (int) (updatedTime % 1000);

        timerValue.setText("" + mins + ":"
        + String.format("%02d", secs) + ":"
        + String.format("%03d", milliseconds));

        timerValue.setVisibility(View.VISIBLE);

        customHandler.postDelayed(this, 0);
    }
};

我在这里调用方法,时钟使用回调运行:

startButton.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            startButton.setVisibility(View.GONE);

                            // start clock
                            startTime = SystemClock.uptimeMillis();
                            customHandler.postDelayed(updateTimerThread, 0);
                            }
                    });
                    // labeled as End Workout button
                    pauseButton.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            startButton.setVisibility(View.GONE);
                            pauseButton.setVisibility(View.GONE);

                            congrats.setVisibility(View.VISIBLE);
                            exitApp.setVisibility(View.VISIBLE);

                            // stop clock
                            timeSwapBuff += timeInMilliseconds;
                            customHandler.removeCallbacks(updateTimerThread);

所有这些都发生在同一个片段中。提前感谢任何建议。

1 个答案:

答案 0 :(得分:0)

您似乎只想在列表视图上覆盖计时器的视图 - 只需使用FrameLayout(或者如果您的目标仅限于4.4+设备,则使用新的叠加API)