我正在创建一个测验应用程序,在其中随机生成任务,但是我不知道如何等待用户单击for循环。我尝试这样做:
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
}
});
}
我要:
我想重复五遍。 我以前看过这个问题,但没有找到我需要的东西。谢谢。
答案 0 :(得分:1)
您可以做下一个:
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
}
}