Как создать Java-код для Android, который ждет некоторое время, например, 3 - 5 секунд, чтобы пользователь нажал кнопку, которая просто меняет свои координаты xy и увеличивает счет, иначе намерен перейти к другому действию.
Я пытался реализовать это, обращаясь к этому SO-ответу [ Как приостановить / перевести нить в поток или обработать в Android? , но код продолжает выполнять другие действия после 5-6 нажатий кнопок, даже если Я нажимаю в течение указанного времени задержки. Это код -
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
score++;
scr=String.valueOf(score);
scoredisp.setText(scr);
int xval=xvalue();
int yval=yvalue();
btn.setX(xval);
btn.setY(yval);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run()
{
Intent result = new Intent(MainActivity.this,com.example.warlock.buttonsquash.result.class);
startActivity(result);
}
}, 3000);
}
});
int xvalue() {
Random randomGenerator = new Random();
int xval = randomGenerator.nextInt(850) + 1;
return xval;
}
int yvalue() {
Random randomGenerator = new Random();
int yval = randomGenerator.nextInt(1500) + 1;
return yval;
}
Мне просто нужно нажать кнопку, чтобы изменить координаты кнопки и увеличить значение оценки, но намерение начинает происходить после 5-6 нажатий кнопки.