私のプログラムには2つのカウントダウンタイマーがあり、長い方(120秒)と短い方(3.5秒)です。 3.5秒タイマーが実行されている間は120秒タイマーを一時停止し、3.5秒タイマーが実行されていないときは長いタイマーを継続して実行します。したがって、プログラムは、残りの120秒で3.5秒が実行されている間に開始され、3.5秒が120秒を実行すると3.5秒が1回実行されると一時停止します(ユーザーが一旦Enterを押すと)。この?CountDownTimerを一時停止する - Android
final CountDownTimer loop = new CountDownTimer(3500, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
number.setVisibility(View.GONE);
final TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setVisibility(View.VISIBLE);
prompt.setText(" Enter the number");
final EditText input = (EditText) findViewById(R.id.enterAnswer);
input.setVisibility(View.VISIBLE);
input.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
Editable answer = input.getText();
int finalAnswer = Integer.parseInt(String.valueOf(answer));
int finalLoadG1 = Integer.parseInt(String.valueOf(number.getText()));
input.setVisibility(View.GONE);
prompt.setVisibility(View.GONE);
if (finalAnswer == finalLoadG1) {
score++;
}
number.setVisibility(View.VISIBLE);
if (score>=0 && score<=2){
int loadG1 = generateG1.nextInt(89999)+10000;
number.setText(""+loadG1);
}
else if (score>=3 && score<=5){
int loadG1 = generateG1.nextInt(899999)+100000;
number.setText(""+loadG1);
}
else if (score>=6 && score<=9){
int loadG1 = generateG1.nextInt(8999999)+1000000;
number.setText(""+loadG1);
}
else if (score>=10 && score<=14){
int loadG1 = generateG1.nextInt(89999999)+10000000;
number.setText(""+loadG1);
}
else if (score>=15 && score<=20){
int loadG1 = generateG1.nextInt(899999999)+100000000;
number.setText(""+loadG1);
}
else if (score>=21) {
int loadG1 = generateG1.nextInt((int) 8999999999L)+1000000000;
number.setText(""+loadG1);
}
input.getText().clear();
start();
return true;
default:
}
}
return false;
}
});
}
}.start();
new CountDownTimer(120000, 1000) {
@Override
public void onTick (long millisUntilFinished) {
}
@Override
public void onFinish() {
TextView result = (TextView) findViewById(R.id.outcome);
result.setText("Score: "+ score);
TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setVisibility(View.GONE);
final EditText input = (EditText) findViewById(R.id.enterAnswer);
input.setVisibility(View.GONE);
loop.cancel();
number.setVisibility(View.GONE);
}
}.start();
これまで私はこの質問をしましたが、残念なことに有効な回答はありませんでした。もし誰かがこの質問に答えることができれば、感謝するでしょう。あなたの答えを説明するのに役立つコードを自由に挿入してください。事前に多くの感謝。
あなたはこの質問を100回聞くことができますが、カウントダウンタイマを一時停止する方法はありません。回避策を実行し、必要なときに新しいタイマーを作成する必要があります。今あなたの質問は重複の複製です.... – Opiatefuchs
@Opiatefuchs体は前に私にその答えを与えました。どのタイマーを追加する必要がありますか?私は私の問題を回避することができてうれしいです、あなたは説明を投稿して、解決済みとマークすることができますか? – User44
@Opiatefuchs 'what timer'とはまったく別の意味ですか?既存のタイマーの別のコピー?その他... – User44