【问题标题】:problem with stopWatch in androidandroid中的秒表问题
【发布时间】:2011-08-21 16:15:27
【问题描述】:

在我的应用程序中,我放置了一个带有两个按钮的秒表。秒表以正确的方式工作。但问题是在开始时计时器看起来为 0:0:0,当它开始计数时,单个数字被更改为 0:12:53 的两位数。

这也会影响和干扰其他层。在开始时,我希望它默认显示为 00:00:00,这样我就无法更改布局。

但我不知道在哪里给出这个值。以下是我的代码

  b1.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View view) 
            {
                if(b1.getText().toString().equals("Start"))
                {
                        if(currentThread.getState()==Thread.State.NEW)
                        {
                            currentThread.start();
                            shouldRun = true;
                            b1.setText("Stop");
                        }
                        else
                        {
                          shouldRun = false;
                          b1.setText("Stop");
                        }
                }
                else if(b1.getText().toString().equals("Stop"))
                {
                    time=0;
                    time1=0;
                    time2=0;
                }
            }
        });     
        b2.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View view) 
            {
                if(b2.getText().toString().equals("Pause"))
                {
                    shouldRun = false;
                    b2.setText("Resume");
                }
                else if(b2.getText().toString().equals("Resume"))
                {
                    shouldRun = true;
                    b2.setText("Pause");
                }
            }
        });               
    }
    @Override
    public void run()
    {
        try 
        {
         while(true)
         {  
            while(shouldRun)
            {
                Thread.sleep(1000);
                Log.e("run", "run");
                threadHandler.sendEmptyMessage(0);
            }
         }   
        } 
        catch (InterruptedException e) {}
    }


    private Handler threadHandler = new Handler() 
    {
        public void handleMessage(android.os.Message msg) 
        {
            sec=time2++;
            if(sec == 59)
            {
                time2=0;
                sec = time2++;
                min=time1++;
            }
            if(min == 59)
            {
                time1=0;
                min = time1++;
                hr=time3++;
            }             
            stopWatch.setText(""+hr+":"+min+":"+sec);
        }
    };

}

如何做到这一点请帮帮我............

【问题讨论】:

    标签: java android stopwatch


    【解决方案1】:

    将:

    stopWatch.setText("00:00:00");
    

    在初始化时不这样做?

    【讨论】:

      【解决方案2】:

      这样设置文本

      stopWatch.setText(""+(hr<10?"0"+hr:hr)+":"+(min<10?"0"+min:min)+":"+(sec<10?"0"+sec:sec));
      

      【讨论】:

        【解决方案3】:

        这应该可以完成工作:

        String time = String.format("%02d:%02d:%02d", hr, min, sec);
        stopWatch.setText(time);
        

        或单行版本:

        stopWatch.setText(String.format("%02d:%02d:%02d", hr, min, sec));
        

        【讨论】:

          【解决方案4】:

          添加这段代码很简单

           private Handler threadHandler = new Handler() 
          {
              public void handleMessage(android.os.Message msg) 
              {
                  sec=time2++;
                  if(sec == 59)
                  {
                      time2=0;
                      sec = time2++;
                      min=time1++;
                      if(sec< 10)
                        sec= "0"+sec
          
                  }
                  if(min == 59)
                  {
                      time1=0;
                      min = time1++;
                      hr=time3++;
                     if(min< 10)
                         min= "0"+min
                  }   
          
                  if(hr< 10)
                     hr= "0"+hr          
                  stopWatch.setText(""+hr+":"+min+":"+sec);
              }
          };
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-14
            • 2018-04-15
            • 2019-02-13
            • 1970-01-01
            • 2011-06-08
            相关资源
            最近更新 更多