0
在遊戲中輸出一個隨機數(loadG1)並顯示4秒。一旦四秒鐘結束,它就會消失,用戶必須輸入其值以獲得一個點。一旦用戶按下Enter鍵,他們的輸入框就會消失,程序必須等待較長的CountDownTimer(當前爲18秒)才能看到他們的分數。到目前爲止,他們只能得到一分。我想要發生的事情是,一旦他們輸入答案(無論是否正確),4秒鐘倒計時器的內容將被重複。雖然,我想loadG1在倒數計時器再次啓動時也輸出。所以他們輸入一個答案,一個新的隨機加載G1顯示另外4秒然後消失,他們輸入另一個答案等等,直到更長的計時器結束。我會如何去做這件事?我意識到,循環不起作用,因爲我試過了,它只是讓我的應用程序崩潰。如果有人能幫我做到這一點,並且告訴我如何實現代碼,我將非常感激。 注:我是學習Java和Android開發的新手。 非常感謝提前。如何以特定的方式重複這個倒數計時器...?
下面的代碼:
public class game1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game1);
final Button loseStarter1;
loseStarter1 = (Button) findViewById(R.id.Starter1);
loseStarter1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loseStarter1.setVisibility(View.GONE);
final int[] score = {0};
Random generateG1 = new Random();
final int loadG1 = generateG1.nextInt(1000000)+10000;
final TextView number = (TextView) findViewById(R.id.number);
number.setText(" "+loadG1);
new CountDownTimer(18000, 1000) {
@Override
public void onTick (long millisUntilFinished) {
}
public void onFinish() {
TextView result = (TextView) findViewById(R.id.outcome);
result.setText("Score: "+ score[0]);
TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setVisibility(View.GONE);
}
}.start();
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
number.setVisibility(View.GONE);
final TextView prompt = (TextView) findViewById(R.id.prompt);
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(loadG1));
input.setVisibility(View.GONE);
prompt.setVisibility(View.GONE);
if (finalAnswer == finalLoadG1) {
score[0]++;
}
return true;
default:
}
}
return false;
}
});
}
}.start();
};
});
}
}
你應該嘗試重新說明這個問題。很難理解你想達到什麼。 –
@UdiIdan你不明白的是什麼?我閱讀它的方式似乎是有道理的。我很樂意編輯您需要的任何附加信息。 – User44
如果你需要一個答案,你應該努力表達這個問題,這樣很容易理解。它應該對讀者有意義,而不是對你。祝你好運。 –