Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中循环时获取用户输入?_Android - Fatal编程技术网

如何在android中循环时获取用户输入?

如何在android中循环时获取用户输入?,android,Android,在进入android中for循环的下一次迭代之前,是否可以等待用户输入? 我根据给定的字符串数组以编程方式生成textview。当循环运行时,将创建textview,并将其可见性设置为不可见。现在,我要做的是当循环的第一次迭代运行时,即当I=0时,textview选项1选项2选项3 被分配了随机值,其中一个值等于arr[i](正确的值)。创建选项后,用户将输入他/她的猜测,如果它是正确的,则dynamic TextView可见性设置为VISIBLE,然后循环的下一次迭代应运行,即i=1和新选项,

在进入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”的文本框的可见性。那么,您是否尝试检查了?:)