ゲームで乱数(loadG1)が出力され、4秒間表示されます。 4秒が経過すると、それは消え、ユーザーはポイントを得るためにその値を入力する必要があります。ユーザがenterを押すと、入力ボックスは消え、プログラムはより長いCountDownTimer(現在18秒)が終了してスコアを見るまで待たなければなりません。これまでのところ、1点しか得点できません。私が起こりたいのは、4秒のカウントダウンタイムマーの内容が答えを入力した後に繰り返されることです(正解であろうとなかろうと)。しかし、カウントダウンタイマーが再び始動するときにloadG1も出力させたいです。そこで、彼らは答えを入力し、新しいランダムなloadG1が4秒間表示され、消えて、別の答えを入力するなど、長いタイマーが終了するまで続きます。これをどうやってやりますか?私はループが動作しないことを知っている、私が試したように、それはちょうど私のアプリをクラッシュした。誰かが私の手助けをしてコードを実装する方法を教えてくれれば、とても感謝しています。 注:私はJavaとAndroidの開発者を習得しています。 事前に感謝します。スコアが[0] ++後どのようにこのカウントダウンタイマーを特定の方法で繰り返すことができますか?
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();
};
});
}
}
この質問を再入力してください。あなたが達成したいことを理解することは非常に難しいです。 –
@ウディイダン何を理解していないのですか?私がそれを読んでいるように、それは理にかなっているようです。あなたが必要とする追加情報を喜んで編集したいと思います。 – User44
答えが必要な場合は、理解しやすいように質問を表現する努力をする必要があります。それは読者の方ではなく、読者にとって理にかなっているはずです。がんばろう。 –