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 実行可能な場合:

public Runnable 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 の外に移動することもできません。

さらに、クリック後のスタートボタンがラップに変わり、ラップは実際にはランナブルから時間を取得する必要があることに気づきました。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 に答える