我正在建立一个篮球比分时钟应用程序。我让主计时器运行良好。当我点击它时它会启动时钟,当我再次点击时它会停止时钟。这很完美。
我已经实例化了第二个用于拍摄时钟的对象。但是,onClick
事件根本没有针对第二个文本视图触发。
两个onClick
事件都在TextView元素上设置。当我点击第二个文本视图时,我不知道为什么方法onClickShotClock(View view)
没有触发。
我知道对象是正确实例化的,因为它正确设置了值,并通过代码设置了值来实例化它。
任何人都可以看到这不起作用吗?
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;
}
*/
}
}
答案 0 :(得分:0)
根据TextView onClick() not working,您需要设置
机器人:可点击= “真”
到TextViews,因为它们默认不可点击。
您也可以通过编程方式附加OnClickListeners,如下所示:
strShotClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onShotClockClick(v);
}
});