我正在创建一个应用程序来跟踪扑克锦标赛。
有了这个,我使用自定义CountDown计时器来跟踪我的锦标赛回合。
班级在
之下public class TournamentTimer extends CountDownTimer {
private int mRound;
private TextView mBlindsTextView;
private TextView mTimeTextView;
private TextView mRoundTextView;
private Context mContext;
private View mrootView;
private int numberOfBreaks = 0;
public TournamentTimer(Context context, long timeLimit, int round, View rootView) {
super(timeLimit, 1000);
mContext = context;
mRound = round;
mBlindsTextView = rootView.findViewById(R.id.blinds);
mTimeTextView = rootView.findViewById(R.id.timer);
mRoundTextView = rootView.findViewById(R.id.roundTracker);
mRoundTextView.setText(String.format(mContext.getApplicationContext().getString(R.string.Round), mRound));
mBlindsTextView.setText(mContext.getString(R.string.Blinds, Blinds.DEFAULT_BLINDS1500[mRound - 1], Blinds.DEFAULT_BLINDS1500[mRound - 1] * 2));
mrootView = rootView;
mTimeTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
start();
}
});
}
@Override
public void onTick(long millisUntilFinished) {
long minutesLeft = millisUntilFinished / 60000;
long secondsLeft = (millisUntilFinished % 60000) / 1000;
String timeLeft;
if (secondsLeft >= 10)
timeLeft = mContext.getString(R.string.TimeLeft, minutesLeft, secondsLeft);
else timeLeft = mContext.getString(R.string.TimeLeftWithPadding, minutesLeft, secondsLeft);
mTimeTextView.setText(timeLeft);
}
public void onFinish() {
mRound = mRound + 1;
mRoundTextView.setText(String.format(mContext.getApplicationContext().getString(R.string.Round), mRound - numberOfBreaks));
mBlindsTextView.setText(mContext.getString(R.string.Blinds, Blinds.DEFAULT_BLINDS1500[mRound - 1 - numberOfBreaks], Blinds.DEFAULT_BLINDS1500[mRound - 1 - numberOfBreaks] * 2));
//Will Keep cycling through rounds until the tournament is manually ended.
if (mRound % 4 == 0) {
mRoundTextView.setText(R.string.Break);
numberOfBreaks++;
}
this.start();
}
}
我在创建显示计时器的活动时会创建一个新的计时器。
我在活动停止时取消计时器。
当我恢复活动时,我重新启动计时器,然后启动,但屏幕上的视图不会更新。
有什么建议吗?
更新
我能够让它发挥作用。我添加了一个剩余毫秒的变量,并在每个刻度上更新它。
然后在我的主要活动中,我抓住了这个新变量以及onStop中的圆形变量(也取消了计时器)并在创建时创建了一个带有这些值的新计时器。
答案 0 :(得分:0)
我能够让它发挥作用。我添加了一个剩余毫秒的变量,并在每个刻度上更新它。
然后在我的主要活动中,我抓住了这个新变量以及onStop中的圆形变量(也取消了计时器)并在创建时创建了一个带有这些值的新计时器