如何暂停循环并等待用户点击



我正在创建一个测试应用程序,其中随机生成任务,但我不知道如何等待用户点击进入循环。我试着这样做:

final Integer min=1;
final Integer max=100;
for (int i = 0; i<5; i++){
button_check3.setVisibility(View.VISIBLE);
button_next3.setVisibility(View.INVISIBLE);
final int x = new Random().nextInt(max - min)+min;
final int y = new Random().nextInt(max-x - min)+min;
task3.setText(x + " + " + y + " ="); //set task
final  int zbroj = x+y;
button_check3.setOnClickListener(new View.OnClickListener() { //check user answer
@Override
public void onClick(View v) {
button_check3.setVisibility(View.INVISIBLE);
button_next3.setVisibility(View.VISIBLE);
String user_answer=answer3.getText().toString();
if (user_answer.equals(zbroj)){
check3.setImageResource(R.drawable.true_);
}
else {
check3.setImageResource(R.drawable.wrong_);
}
}
});
button_next3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//continue for loop
}
});
}

我想:

  • 生成任务
  • 等待用户单击"检查"按钮并检查答案
  • 等待用户单击"下一步"按钮
  • 连续循环

我想把这个重复五次我以前看过这个问题,但没有找到我需要的东西谢谢。

您可以制作下一个:

class LoopActivity : AppCompatActivity() {
val button1: Button = findViewById()
val button2: Button = findViewById()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setContentView(/*layout*/)
imitationLoop(false)
}
fun imitationLoop(needBreak: Boolean) {
if (!needBreak) {
someCode1()
button1.setOnClickListener {
button1.setOnClickListener { }
someCode2()
button2.setOnClickListener {
button2.setOnClickListener { }
imitationLoop(/*conditionBreak*/)
}
}
}
}
fun someCode1() {
//somecode
}
fun someCode2() {
//somecode
}
}

这是递归。并且您需要中断递归的条件。如果您想要作为外观(int i=0;i<10;i++(的条件:

class LoopActivity : AppCompatActivity() {
val button1: Button = findViewById()
val button2: Button = findViewById()
var i: Int = 0
var max: Int = 10
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(/*layout*/)
imitationLoop(false)
}
fun imitationLoop(needBreak: Boolean) {
if (!needBreak) {
someCode1()
button1.setOnClickListener {
button1.setOnClickListener { }
someCode2()
button2.setOnClickListener {
button2.setOnClickListener { }
imitationLoop(i++ < max)
}
}
}
else {
i = 0
}
}
fun someCode1() {
//somecode
}
fun someCode2() {
//somecode
}
}

最新更新