私はバスケットボールのスコア時計アプリを構築しています。メインタイマーがうまく機能しました。クリックすると時計が始まり、もう一度クリックすると時計が止まります。これは完璧に機能します。
ショット クロック用の 2 つ目のオブジェクトをインスタンス化しました。ただし、onClick
イベントは2番目のテキストビューではまったく発生していません。
どちらonClick
のイベントも TextView 要素で設定されます。onClickShotClock(View view)
2 番目のテキスト ビューをクリックしたときにメソッドが起動しない理由がわかりません。
値が正しく設定されており、インスタンス化するコードを介して値が設定されているため、オブジェクトが正しくインスタンス化されていることがわかります。
これが機能していないことを誰かが見ることができますか?
package com.example.ultimatescoreclock;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import android.os.CountDownTimer;
import com.example.ultimatescoreclock.ScoreClock;
public class MainActivity extends Activity {
TextView strMainClock, strShotClock;
ScoreClock timerMainClock, timerShotClock;
long msSavedMainClock = 0;
long msSavedShotClock = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
strMainClock = (TextView) findViewById(R.id.clockMain);
strShotClock = (TextView) findViewById(R.id.clockShot);
timerMainClock = new ScoreClock( 13000, 100, strMainClock );
timerShotClock = new ScoreClock( 8000, 100, strShotClock );
strMainClock.setText( timerMainClock.getTimeLeft() );
strShotClock.setText( timerShotClock.getTimeLeft() );
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void onMainClockClick(View view) {
if ( !timerMainClock.isRunning ) {
if ( msSavedMainClock != 0 )
timerMainClock = new ScoreClock( msSavedMainClock, 100, strMainClock );
timerMainClock.start();
timerMainClock.isRunning = !timerMainClock.isRunning;
} else {
timerMainClock.cancel();
msSavedMainClock = timerMainClock.msRemaining;
timerMainClock.isRunning = !timerMainClock.isRunning;
}
}
public void onShotClockClick(View view) {
strShotClock.setText("go!");
/*
if ( !timerShotClock.isRunning ) {
if ( msSavedShotClock != 0 )
timerShotClock = new ScoreClock( msSavedShotClock, 100, strShotClock );
timerShotClock.start();
timerShotClock.isRunning = !timerShotClock.isRunning;
} else {
timerShotClock.cancel();
msSavedShotClock = timerShotClock.msRemaining;
timerShotClock.isRunning = !timerShotClock.isRunning;
}
*/
}
}