如何暂停循环并等待用户单击 [英] How to pause for loop and wait for user click
本文介绍了如何暂停循环并等待用户单击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在创建一个随机生成任务的测验应用程序,但是我不知道如何等待用户单击for loop.我尝试这样做:
I'm creating a quiz app where randomly generating tasks, but I don't know how to wait for user click in for loop. I tried to do this:
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
}
});
}
我要:
- 生成任务
- 等待用户单击检查按钮并检查答案
- 等待用户单击下一步按钮
- 继续循环
我想重复五遍. 我以前看过这个问题,但没有找到我需要的东西.谢谢.
I want to repeate this five times. I saw this question before but I didn't find what I need. Thank you.
推荐答案
您可以创建下一个:
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 ++):
It's recursion. And you need condition for break recursion. If you want condition for as look (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
}
}
这篇关于如何暂停循环并等待用户单击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文