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

时间:2017-03-31 11:35:37

标签: android

是否有可能在进入android的for循环的下一次迭代之前等待用户输入。 ? 我根据给定的String数组以编程方式生成textview。当循环运行时,创建textview并将其可见性设置为不可见。现在,我想要做的是当循环的第一次迭代运行时,即当i = 0时textviews options1 options2 options3 为其分配随机值,其中一个等于arr [i](正确的一个)。创建选项后,如果动态文本视图可见性设置为可见,则用户将输入他/她的猜测,然后输入循环的下一个迭代应该运行,即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]);

    }

1 个答案:

答案 0 :(得分:0)

是的,可以使用AlertDialog框。在循环中创建AlertDialog,它将根据您的循环生成并在警报对话框中创建EditText框。 这是用于创建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();