3

ビューがあり、それにクロノメーターを追加したいと考えています。次に、描画時に現在の時刻を表示したいと思います。これが私がした方法です:

    public class MyView extends View {
    private Chronometer chrono;
    private long elapsedTime=0;
    private String currentTime="00:00:00";

    public MyView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    init(context);
    }

    private void init(Context ctx){
    chrono= new Chronometer(ctx);
    chrono.setText("Time: 00:00:00");
    chrono.setOnChronometerTickListener(new OnChronometerTickListener()
    {
           public void onChronometerTick(Chronometer arg0) {

             String HH =((elapsedTime / 3600) < 10 ? "0" : "") + (elapsedTime / 3600);
             String MM =((elapsedTime / 60) < 10 ? "0" : "") + (elapsedTime / 60); 
             String SS =((elapsedTime % 60) < 10 ? "0" : "") + (elapsedTime % 60);
             String currentTime = HH+":"+MM+":"+SS; 
             elapsedTime = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000;
             arg0.setText(currentTime);
           }
    }
    );
    }

    chrono.setBase(SystemClock.elapsedRealtime());
    chrono.start();

}
    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawText(currentTime, someWidth , someHeight, somePaint);
    }

最初のテキスト 00:00:00 が描画されますが、変更されません。私は何か間違ったことをしているに違いない。何か案は ?

4

1 に答える 1

2

ローカル変数 String currentTime を作成し、グローバル変数の代わりにそれに書き込みます。

于 2010-10-20T13:06:32.240 に答える