如何在android中循环时获取用户输入?
在进入android中for循环的下一次迭代之前,是否可以等待用户输入? 我根据给定的字符串数组以编程方式生成textview。当循环运行时,将创建textview,并将其可见性设置为不可见。现在,我要做的是当循环的第一次迭代运行时,即当I=0时,textview选项1选项2选项3 被分配了随机值,其中一个值等于arr[i](正确的值)。创建选项后,用户将输入他/她的猜测,如果它是正确的,则dynamic TextView可见性设置为VISIBLE,然后循环的下一次迭代应运行,即i=1和新选项,依此类推。。有可能做到这一点吗 到目前为止,我的代码如下:如何在android中循环时获取用户输入?,android,Android,在进入android中for循环的下一次迭代之前,是否可以等待用户输入? 我根据给定的字符串数组以编程方式生成textview。当循环运行时,将创建textview,并将其可见性设置为不可见。现在,我要做的是当循环的第一次迭代运行时,即当I=0时,textview选项1选项2选项3 被分配了随机值,其中一个值等于arr[i](正确的值)。创建选项后,用户将输入他/她的猜测,如果它是正确的,则dynamic TextView可见性设置为VISIBLE,然后循环的下一次迭代应运行,即i=1和新选项,
String[] arr = {"a", "b", "c"};
TextView option_1 = (TextView) findViewById(R.id.txtv1);
TextView option_2 = (TextView) findViewById(R.id.txtv2);
TextView option_3 = (TextView) findViewById(R.id.txtv3);
for(int i = 0; i < arr.length; i++) {
final TextView textView = new TextView(this);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);
textView.setLayoutParams(new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, 48));
textView.setGravity(Gravity.CENTER_VERTICAL);
textView.setPadding(20, 0, 0, 0);
textView.setText(arr[i]);
textView.setId(i + 1);
textViewIds[i] = textView.getId();
textView.setVisibility(View.INVISIBLE);
final int[] textViewIds = new int[]{R.id.txtv1, R.id.txtv1, R.id.txtv1};
Random r = new Random();
int Rand_Tv_no = r.nextInt(textViewIds.length);
((TextView) findViewById(textViewIds[Rand_Tv_no])).setText(code[i]);
}
String[]arr={“a”、“b”、“c”};
TextView选项_1=(TextView)findViewById(R.id.txtv1);
TextView选项_2=(TextView)findViewById(R.id.txtv2);
TextView选项_3=(TextView)findViewById(R.id.txtv3);
对于(int i=0;i
是,可以使用警报对话框
框。在循环中创建警报对话框
,它将根据您的循环生成,并在警报对话框中创建编辑文本
框。
这是创建AlertDialog
AlertDialog alert = new AlertDialog.Builder(AnalogyActivity.this)
.setTitle("Are You Sure?")
.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.e(TAG, "click: No");
}
})
.create();
alert.setCanceledOnTouchOutside(true);
alert.show();
在进入android中的for循环下一次迭代之前是否可以等待用户输入
否,因为您冻结了事件循环,并且您的应用程序因ANR(应用程序无响应)崩溃,因此无法执行我在问题中提出的操作,或者是否有其他方法?可能,但是如果你的代码做了一些合理和相关的事情,并且没有冻结UIListener,这会有所帮助。UIListener是获取输入的方式,你的代码似乎需要很高的CPU使用率。我使用了OnClickListener,但它在最后一个索引执行,而不是从第一个索引开始。就像它只会将文本视图设置为“c”可见。请随时询问您是否有疑问如果我使用警报对话框,它也会在最后一个索引处弹出,并且只会像以前一样更改值为“c”的文本框的可见性。虽然它出现了3次,但只会更改值为“c”的文本框的可见性。那么,您是否尝试检查了?:)