繁体   English   中英

为什么我的变量递减?

[英]Why is my variable decrementing?

while(i < numCourses){
            final int index = i;

            //Create a Dialog
            final Dialog dialog = new Dialog(MainActivity.this);
            dialog.setContentView(R.layout.input_dialog);
            TextView textView = (TextView) dialog.findViewById(R.id.textView4);
            textView.setText("" + i);
            dialog.show();

            //Button for the dialog.
            Button b = (Button) dialog.findViewById(R.id.button);
            b.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //Get input Course Numbers, numCourses times
                    EditText editText = (EditText) dialog.findViewById(R.id.editText2); //EditText
                    String getInput = editText.getText().toString();             //String input
                    try {
                        courseNumbers[index] = Integer.parseInt(getInput);
                        Toast.makeText(MainActivity.this, "" + courseNumbers[index], Toast.LENGTH_SHORT).show();
                    }catch (Exception ex){}

                    //Dismiss dialog
                    dialog.dismiss();
                }
            });
            i++;
        }

这是我的变量int = i在对话框中显示的内容,假设numCourses为4:

3
2
1
0

我的问题是为什么要向后递减,而不是从0递增到3。并且要从对话框接收输入数组,如何有效地要求输入numCourses次? 代替我有一个while循环并刺激我,我觉得效率不高。

单击每个输入后,不使用循环,然后显示下一个对话框。

public void showCourseDialog(final int i, final int numCourses){
final int index = i;

        //Create a Dialog
        final Dialog dialog = new Dialog(MainActivity.this);
        dialog.setContentView(R.layout.input_dialog);
        TextView textView = (TextView) dialog.findViewById(R.id.textView4);
        textView.setText("" + i);
        dialog.show();

        //Button for the dialog.
        Button b = (Button) dialog.findViewById(R.id.button);
        b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Get input Course Numbers, numCourses times
                EditText editText = (EditText) dialog.findViewById(R.id.editText2); //EditText
                String getInput = editText.getText().toString();             //String input
                try {
                    courseNumbers[index] = Integer.parseInt(getInput);
                    Toast.makeText(MainActivity.this, "" + courseNumbers[index], Toast.LENGTH_SHORT).show();
                }catch (Exception ex){}

                //Dismiss dialog
                dialog.dismiss();

               if(i < numCourses)
                  showCourseDialog(++i, numCourses);
            }
        });

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM