わかりましたので、私は Java と Android プログラミングの両方の初心者です。フレンドリーゲーム用のバスケットボールアプリケーションを作ろうとしています。現在、24 から 0 までカウントし、サウンドを再生し、ボタンでリセットされるショットクロックを作成しています。
public class MainActivity extends Activity {
private ShotClock shotClock;
private TextView shotClockTimer;
private Timer timer = new Timer();
private Button shotClockReset;
private final static int interval = 100;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
shotClockTimer = (TextView) findViewById(R.id.shotClock);
shotClockReset = (Button)findViewById(R.id.shotClockReset);
shotClock = new ShotClock();
shotClockReset.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
shotClock.shotClockReset();
}
});
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
TimerMethod();
}
}, 0, interval);
}
private void TimerMethod() {
this.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
shotClock.advanceClock();
shotClockTimer.setText(String.format("%.1f",shotClock.getSeconds()));
}
};
}
アイデアは、0.1秒ごとにタイマーがあり、それに応じてクロックを更新することです。これは正常に動作し、クロックは 24-0 からカウントされ、適切にリセットされます。私の問題は、それが正確ではないことです.3つの他のタイマーでテストしましたが、常に少し遅くなります.他のタイマーが0に達するまでに、これは残り約1〜1.5秒です. 原始的な方法で間隔を変更する以外に、より正確にするために何ができますか? 私は新しいので、仲良くしてください:)助けてくれてありがとう!