1

我要创建秒表,但遇到了一些麻烦。我的代码看起来是:

1 对于开始按钮:

    start.setOnClickListener(new OnClickListener() {
        @Override
    public void onClick(View v) {
               // some code
      mHandler.removeCallbacks(mUpdateTimeTask);
      mHandler.postDelayed(mUpdateTimeTask, 1);
      start.setText("Lap");
     }});

2 对于可运行:

公共可运行 mUpdateTimeTask = new Runnable() {

     public void run() {
          EditText licznik = (EditText)findViewById(R.id.editText1);
          // some code
          licznik.setText(time+"");
mHandler.postDelayed(this, 1);

      }
   };

我的秒表适用于:开始,停止。

但是我无法在重置按钮的 onclicklistener 操作中创建:licznik.setText(""); 因为 licznik 是在 mUpdateTimeTask 内部启动的,所以我也无法将 licznik 移到 mUpdateTimeTask 之外,因为它当时不起作用。

此外,正如您注意到单击后我的开始按钮将更改为 lap 并且 lap 应该从 runnable 获得实际时间。我不知道怎么做,因为 runnable 是动态的。

有人有解决办法吗?

4

1 回答 1

0

不确定,如果这会有所帮助,但您可以通过Runnable以下方式创建:

class UpdateTimeTask implements Runnable {
    private final EditText whatever;

    UpdateTimeTask(EditText whatever) {
        this.whatever = whatever;
    }

    @Override
    public void run() {
        // act upon whatever
    }
}
于 2013-03-15T21:59:04.707 回答