0

我正在构建一个篮球比分时钟应用程序。我让主计时器运行良好。当我点击它时,它会启动时钟,当我再次点击它时,它会停止时钟。这很完美。

我已经实例化了第二个对象,它是用于拍摄时钟的。但是,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;
        }
        */      
    }

} 
4

1 回答 1

0

根据TextView onClick() not working,您需要设置

安卓:可点击=“真”

到 TextViews,因为默认情况下它们不可点击。

您还可以像这样以编程方式附加 OnClickListener:

strShotClick.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onShotClockClick(v);            
    }
});
于 2012-12-14T14:30:55.170 回答